我的应用程序有两个活动,比如MainActivitySecondActivity。主活动声明为android:launchMode="singleInstance",其方向始终为portrait。第二个活动总是有landscape方向。
在某些设备中,一切正常,在任务管理器中只有一个应用程序实例,但在某些设备(如Samsung S7)中,当我启动SecondActivity时,任务管理器中将有两个应用程序实例,如下图所示:
android - 同一应用程序的任务管理器中的两项 Activity-LMLPHP
我的猜测是launchModeMainActivty有问题,但我需要它是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>

其次:
<activity
    android:name=".Activities.SecondActivity"
    android:screenOrientation="landscape" />

发射代码:
Intent intent = new Intent(getActivity(),
intent.putExtra("VideoUri", filmGet.getOutput().getData().getFilmTrailer());
startActivity(intent);

如果有帮助,我从片段启动SecondActivity

最佳答案

所以,在阅读了@sharan评论和一些google之后,我读了一些google文档。据医生说,android:launchMode=singleInstanceandroid:launchMode=singleTask之间没有任何区别,只有一个。它们都会让你的活动singleton,所以你永远不会有两个这样的例子。它们之间的唯一区别是singleInstance将阻止任务附加任何其他活动,而singleTask没有此限制。关于他们的任何其他事情都是一样的。
因此,对于阅读本文的人,我建议您不要使用singleInstance启动模式,除非您确实需要它所具有的功能。因为如果你的应用中只有一个活动,那么singleInstancesingleTask之间就没有区别。如果你有一个以上的活动,那么我建议你所有的活动都属于一个任务。
简而言之,将singleInstance更改为singleTask就可以了。

关于android - 同一应用程序的任务管理器中的两项 Activity ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40691041/

10-09 01:43