当我的Android应用程序 - 活动B - 被移动到后台时(由用户按下android主页按钮),它仍处于活动状态,onStop()被按预期调用。
活动B在这里没有被销毁,但是当用户再次点击应用程序的图标时,它再次调用intent-filter MAIN和LAUNCHER,启动活动A,而不是在活动B上调用onResume()。
所以显示了启动活动 - 活动A - ,但如果用户按下android后退按钮,则启动活动完成(),并显示旧活动 - 活动B - !
当活动B移动到后台时应该发生的事情是活动B暂停并停止。通过按应用程序图标恢复应用程序时,应恢复活动B. (除非它被杀死和摧毁,但它没有被杀死)
我该如何解决这个问题?活动B最初由活动A使用
打开Intent next = new Intent(ActivityA.this, ActivityB.class);
startActivity(next);
finish();
以下是活动B的清单条目
<activity android:name=".ActivityB"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
</activity>
以下是活动A的清单条目
<activity android:name=".Activity A"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:5)
在您声明活动b的清单文件中使用android:launchMode="singleTask"
。然后活动b不在后台显示。