如何关闭从我的应用启动的外部应用(如 Instagram)并返回触发应用?

Posted

技术标签:

【中文标题】如何关闭从我的应用启动的外部应用(如 Instagram)并返回触发应用?【英文标题】:How do I close an external app like Instagram launched from my app and return to the Triggering App? 【发布时间】:2018-09-15 09:02:37 【问题描述】:

我有一个 android 应用程序,它使用 Intent 将 Instagram 启动到我的页面。一旦用户使用完 Instagram 并使用后退箭头将其关闭,我需要关闭 Instagram 并将用户返回到触发该活动的我的 Android 应用程序。我的 Intent 可以工作并打开 instagram,但使用后退按钮它会留在 instagram 中。在下面找到我的触发 instgram 的代码

public void LaunchInstgram(View view)

    Intent openInstagram = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
    openInstagram.setData( Uri.parse( "https://www.instagram.com/_u/eatoutlagos") );
    try 
        startActivity(openInstagram);
     catch (ActivityNotFoundException e) 
        Toast.makeText(this, "Sorry, Instagram Not Installed", Toast.LENGTH_LONG).show();
    

【问题讨论】:

***.com/questions/23579725/…的可能重复 【参考方案1】:

我认为您在通过Intents 启动Instagram App 之前在MainActivity 中调用finish() 方法

您所描述的场景将通过以下两种方式发生:

任何一个

您已在AndroidManifest.xml 中为MainActivity 设置了android:noHistory = "true",这会导致MainActivity 在按下返回键时自动完成

在切换到 LaunchInstragram 之前,您已经在 MainActivity 中调用了 finish(),这会杀死它。当您按下后退按钮时,由于堆栈中没有其他要弹出的活动,它会停留在那里......

您也可以通过点击以下link在您的应用上试用 ChatHeads

编辑

试试下面的代码:

Uri uri = Uri.parse("https://www.instagram.com/_u/eatoutlagos");
Intent likeIng = new Intent(Intent.ACTION_VIEW, uri);

likeIng.setPackage("com.instagram.android");

try 
    startActivity(likeIng);
 catch (ActivityNotFoundException e) 
    startActivity(new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://www.instagram.com/_u/eatoutlagos")));

【讨论】:

嗨,阿米特,我似乎无法让前两个选项起作用。我在 mainActivity 的哪个阶段放置了 finish() 方法?如果我把它放在 onCreate 方法中,当我单击按钮开始时,它根本不会启动活动。我把它放在启动 instagram 意图的方法中并且没有变化,instagram 仍然没有关闭我的应用程序 public void LaunchInstgram(View view) finish();意图 openInstagram = getPackageManager().getLaunchIntentForPackage("com.instagram.android"); openInstagram.setData( Uri.parse( "instagram.com/_u/eatoutlagos") ); 尝试 startActivity(openInstagram); catch (ActivityNotFoundException e) Toast.makeText(this, "对不起,Instagram 未安装", Toast.LENGTH_LONG).show( ); //startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("instagram.com/eatoutlagos" 在第二种情况下,我将命令放在启动 Intagram 应用程序的活动中的清单文件中,如下所示 但是没有效果。我没有正确编写代码?请看看我分享了什么 您没有正确阅读我的答案。我说如果存在就删除这些行...不要添加它们...也不要评论任何代码。这不容易阅读..更新您的问题以清楚起见..通过编辑它....

以上是关于如何关闭从我的应用启动的外部应用(如 Instagram)并返回触发应用?的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的应用程序委托启动一个 NSTimer,它在 Viewcontroller.m 中调用我的方法

如何处理从我的 GUI 应用程序启动的控制台窗口?

Android应用程序在启动时崩溃[关闭]

如何在 IOS 中从我的 React-Native 应用程序打开外部应用程序?

如何从我的应用程序关闭 Safari

我如何在后台保持我的应用程序处于运行状态