Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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_Android Activity_Instance - Fatal编程技术网

Android 由其他应用启动的活动,请使用现有实例

Android 由其他应用启动的活动,请使用现有实例,android,android-intent,android-activity,instance,Android,Android Intent,Android Activity,Instance,我的应用程序有两个活动MainActivity和Externality。Externality被其他应用程序调用,作为启动我的应用程序的一种方式。Externality随后将调用MainActivity上的startActivity,它可能以前已经启动过。我的问题是,如何在后台恢复MainActivity实例 请注意,这与同一应用程序中的切换活动不同。每次调用Externality时,它是否也会创建一个新堆栈 我试过了 Intent i = new Intent(this, Ma

我的应用程序有两个活动MainActivity和Externality。Externality被其他应用程序调用,作为启动我的应用程序的一种方式。Externality随后将调用MainActivity上的startActivity,它可能以前已经启动过。我的问题是,如何在后台恢复MainActivity实例

请注意,这与同一应用程序中的切换活动不同。每次调用Externality时,它是否也会创建一个新堆栈

我试过了

        Intent i = new Intent(this, MainActivity.class);
        i.setAction(Intent.ACTION_MAIN);
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        startActivity(i);

在Externality中,但两者都创建MainActivity的新实例


我还尝试将MainActivity设置为“singleTask”,但也没有成功。

我认为您应该在android清单文件中声明启动模式

<activity
        android:name=".name"
        android:launchMode="singleTask"
        >


我希望这会对你有所帮助。

我不想这么说,但这显然是个无法解决的问题。它应该根据文档工作,但当我进行实验时,它仍然会创建活动的新实例。singleTask意味着活动将在一个任务中。我试过了,效果很好。
<activity
        android:name=".name"
        android:launchMode="singleTask"
        >