Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将应用程序带到前台,如果它已经在运行,而不是在android中创建新的实例_Android_Android Intent - Fatal编程技术网

将应用程序带到前台,如果它已经在运行,而不是在android中创建新的实例

将应用程序带到前台,如果它已经在运行,而不是在android中创建新的实例,android,android-intent,Android,Android Intent,在我的应用程序中,我想启动应用程序(消息、联系人等),如果我启动的应用程序(消息、联系人等)已经在后台运行,我想让它出现在前台。我尝试使用moveTaskToFront(),但它没有从上述API 23(棒棒糖)实现。因此,我最终得到了以下代码: Intent intent=getPackageManager().getLaunchIntentForPackage("com.android.mms"); intent.setFlags(Intent.FLAG_ACTIVITY_NE

在我的应用程序中,我想启动应用程序(消息、联系人等),如果我启动的应用程序(消息、联系人等)已经在后台运行,我想让它出现在前台。我尝试使用
moveTaskToFront()
,但它没有从上述API 23(棒棒糖)实现。因此,我最终得到了以下代码:

Intent intent=getPackageManager().getLaunchIntentForPackage("com.android.mms");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
通过使用此代码,如果我从应用程序内部启动消息,它将启动,如果我再次从应用程序内部启动相同的应用程序,它将完美地恢复并从我们离开的位置继续。 但是,当我从默认的android启动器启动同一个消息应用程序时,它只是在我已经运行的消息应用程序的上面创建消息应用程序的新实例,该应用程序已经由我的应用程序启动。
我不知道这个问题的解决方案是什么。请帮助我…

使用下面的方法在你的应用程序中这样调用意图

Intent intent = new Intent(CONTEXT, TARGET_ACTIVITY.CLASS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

使用下面的方法在您的应用程序中调用意图,如下所示

Intent intent = new Intent(CONTEXT, TARGET_ACTIVITY.CLASS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

你听说过吗?@SlashG是的,我尝试过,但它也会创建新实例如果你在标签中设置android:launchMode=“singleInstance”,它不会创建新实例……但只会为你的活动创建新实例……@opiatefuch是的,你是对的,但是我想启动一个应用程序而不是一个活动。你知道任何解决方案吗?如果是通过intent启动的,我不确定它是否也属于其他应用程序,但请尝试
FLAG\u activity\u SINGLE\u TOP
FLAG\u ACTIVITY\u CLEAR\u TASK
FLAG\u ACTIVITY\u CLEAR\u TOP
没有
FLAG\u ACTIVITY\u NEW\u TASK
你听说过吗?@SlashG是的,我尝试过,但如果你在标签中设置安卓:launchMode=“singleInstance”,它也会创建新实例,它不会创建新实例……但仅针对您的活动…@OpiateFuch是的,您是对的,但我想启动一个应用程序而不是活动。您知道任何解决方案吗?如果通过intent启动,我不确定它是否也属于其他应用程序,但请尝试
标记活动\u SINGLE\u TOP
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_NEW_TASK
从一开始就完全重新启动应用程序:(上面的代码在你自己的应用程序中很有用,就像你想从通知中触发相同的活动一样,但是如果你调用
Explicit Intents
,它会创建一个对被调用Intent的基本活动的单独调用,从而生成同一应用程序的另一个实例。@Nitin_Misra那么我们如何停止在同一个应用程序。是否可以使用lollipopIt中的moveTaskToFront()将后台应用程序置于前台。lollipopIt正在从一开始就完全重新启动应用程序:(上面的代码在你自己的应用程序中很有用,就像你想从通知中触发相同的活动一样,但是如果你调用
Explicit Intents
,它会创建一个对被调用Intent的基本活动的单独调用,从而生成同一应用程序的另一个实例。@Nitin_Misra那么我们如何停止在相同的应用程序。是否可以使用棒棒糖中的moveTaskToFront()将后台应用程序置于前台