【发布时间】:2016-11-19 09:01:05
【问题描述】:
我的应用程序有两个活动,例如 MainActivity 和 SecondActivity。主要活动声明为android:launchMode="singleInstance",其方向始终为portrait。第二个活动始终具有landscape 方向。
在某些设备中,一切正常,在任务管理器中只有一个我的应用程序实例,但在某些设备(如三星 S7)中,当我启动 SecondActivity 时,我的应用程序在任务中会有两个实例经理喜欢这张图片:
我的猜测是MainActivty 的launchMode 有问题,但我需要它是singleInstance。有什么建议吗?
编辑:
清单中的 MainActivity:
<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。
【问题讨论】:
-
尝试将启动模式更改为 singleTop 或 singleTask。
-
你是如何开始你的新活动的?你能分享
manifest.xml和launching intent吗? -
我需要从另一个活动重新启动 MainActivity 所以 singleTop 不是我想要的。另外我在某处读到,对于 singleTask 活动,每次启动应用程序时,singleTask 活动都会出现在最前面,我不希望这样。
-
我猜,你需要在你的两个活动上明确设置
android:taskAffinity="com.whatever"。为两者设置相同的亲和力并检查它是否有效。 -
@mallaudin,感谢您的建议,但我测试了您的方法,不幸的是它没有奏效。
标签: android android-activity back-stack