【发布时间】:2016-07-26 17:22:09
【问题描述】:
短版:
我一直在开发的应用程序在按下后退按钮后“启动”时会打开第二个实例。
加长版:
当应用程序从“主屏幕”启动时,它可以正常工作 - 如果应用程序通过按后退箭头按钮、按圆形按钮或方形按钮以更改为不同的应用程序被发送到后台 -然后通过多任务菜单恢复应用程序它完美地工作 - 准确地恢复它停止的位置 - 不再显示启动屏幕,最重要的是不打开第二个实例。 然而如果应用程序被发送到后台然后再次启动从主屏幕创建应用程序的第二个实例!启动屏幕再次显示,主要活动显示在屏幕上,而不是用户屏幕上的最后一个活动!这显然不是理想的行为,我尝试的许多解决方案都不起作用。
清单:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:launchMode="singleInstance">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:launchMode="singleInstance">
</activity>
<activity
android:name=".Settings_area"
android:screenOrientation="portrait" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyDieXTCaFoIL0kJ_IM4UMBSQL3sNn92AWM" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps" />
<activity android:name=".Splash"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".aboutPageActivity" />
<activity android:name=".turnOffFromNotification"
android:noHistory="true"></activity>
</application>
编辑:
我还尝试将应用程序标签中的launchMode 替换为singleTask 和singleInstance。
【问题讨论】:
-
我看到你的发布活动是
singleInstance。也许这导致了这种行为。 -
您好@Shaishav 我已将其更改为 singleTop 和 singleTask - 似乎没有任何效果!你有什么其他的建议?谢谢!!
-
尝试删除启动模式。您有什么理由需要在独立任务中运行活动?
-
@shaishav 删除启动模式也不起作用.. 没有理由独立任务!
-
看在上帝的份上,摆脱闪屏。
标签: android android-activity android-lifecycle onbackpressed