当我的 android 应用程序 - Activity B - 移动到后台(通过用户按下 android 主页按钮)时,它仍然存在,按预期调用了 onStop()。
Activity B 并没有在这里被销毁,但是当用户再次点击应用程序的图标时,它会再次调用 intent-filter MAIN 和 LAUNCHER,启动 Activity A,而不是在 Activity B 上调用 onResume()。
因此显示启动 Activity - Activity A - ,但如果用户按下 android 后退按钮,则启动 Activity finishes() ,并显示旧 Activity - Activity B - !
当Activity B被移到后台时应该发生的事情是Activity B被暂停和停止。当通过按应用程序图标恢复应用程序时,应恢复 Activity B。 (除非它被杀死和摧毁,但它还没有)
我该如何解决这个问题? Activity B 最初是由 Activity A 使用
打开的Intent next = new Intent(ActivityA.this, ActivityB.class);
startActivity(next);
finish();
这是 Activity B 的 list 条目
<activity android:name=".ActivityB"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
</activity>
这是 Activity A 的 list 条目
<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>
为什么会发生这种情况,我该如何解决?
最佳答案
在声明 Activity b 的 list 文件中使用 android:launchMode="singleTask"
。然后activity b不显示在后台。
关于Android 应用再次调用 MAIN/LAUNCHER,而不是 onResume(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405827/