Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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/4/c/65.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 Activity_Back Stack - Fatal编程技术网

Android 同一应用程序的任务管理器中的两个活动

Android 同一应用程序的任务管理器中的两个活动,android,android-activity,back-stack,Android,Android Activity,Back Stack,我的应用程序有两个活动,即main活动和second活动。主要活动被声明为android:launchMode=“singleInstance”,其方向始终是trait。第二个活动始终具有横向方向 在某些设备中,一切正常,在task manager中只有一个我的应用程序实例,但在某些设备(如三星S7)中,当我启动SecondActivity时,task manager中会有两个我的应用程序实例,如下图所示: 我的猜测是main活动的launchMode有问题,但我需要它是singleInsta

我的应用程序有两个活动,即
main活动
second活动
。主要活动被声明为android:launchMode=“singleInstance”,其方向始终是
trait
。第二个活动始终具有
横向
方向

在某些设备中,一切正常,在task manager中只有一个我的应用程序实例,但在某些设备(如三星S7)中,当我启动
SecondActivity
时,task manager中会有两个我的应用程序实例,如下图所示:

我的猜测是
main活动的
launchMode
有问题,但我需要它是
singleInstance
。有什么建议吗

编辑:

清单中的主要活动:

<activity
    android:name=".Activities.MainActivity"
    android:screenOrientation="portrait"
    android:launchMode="singleInstance"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

如果有帮助的话,我会从一个片段启动
SecondActivity

因此,在阅读了@sharan评论和一些谷歌搜索之后,我阅读了一些谷歌文档。根据docs,android:launchMode=singleInstance和android:launchMode=singleTask之间没有任何区别,只有一个。它们都使您的活动成为单例,因此您将永远不会有两个实例。它们之间的唯一区别是
singleInstance
将阻止任务附加任何其他活动,而
singleTask
没有此限制。关于他们的任何其他事情都是一样的

因此,对于阅读本文的任何人,我建议你永远不要使用
singleInstance
启动模式,除非你确实需要它所具备的功能。因为如果你的应用程序中只有一个活动,那么
singleInstance
singleTask
之间就没有区别了。如果你有不止一项活动,那么我会建议你所有的活动都属于一项任务


简而言之,将
singleInstance
更改为
singleTask
,您就可以开始了。

尝试将启动模式更改为singleTop或singleTask。您如何启动新活动?您能否共享
manifest.xml
启动意图
?我需要从另一个活动重新启动MainActivity,这样singleTop就不是我想要的了。另外,我在某个地方读到,对于单任务活动,每次启动应用程序时,单任务活动都会出现在最前面,我不希望出现这种情况。我想,您需要在两个活动上明确设置
android:taskafficion=“com.whatever”
。为两者设置相同的亲和力,并检查它是否有效。@mallaudin,谢谢你的建议,但我测试了你的方法,不幸的是,它不起作用。
<activity
    android:name=".Activities.SecondActivity"
    android:screenOrientation="landscape" />
Intent intent = new Intent(getActivity(),  
intent.putExtra("VideoUri", filmGet.getOutput().getData().getFilmTrailer());
startActivity(intent);