我的 Activity 启动模式设置为 android:launchMode="singleTask"
当我调用 startActivity()
从另一个 Activity 启动它时,它会将它从上一个状态置于顶部。
场景:
Activity A 启动Activity B
Activity B启动 Activity A
Activity A自带旧数据
我使用什么标志来强制它干净地启动并调用 onCreate()
?
知道我必须使用 android:launchMode="singleTask"
来维护
常规应用程序流程,不能切换到 android:launchMode="singleTop"
谢谢
编辑 (1):
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
连同 android:launchMode="singleTask"
它解决了我要问的问题,但它造成了一个最糟糕的问题
现在,当我完成 Activity A(由 Activity A 启动的 Activity B 启动的 Activity A 启动)时,我发现自己结束了我使用的最后一个应用程序,它应该登陆到 Activity B。
最佳答案
尝试使用 onNewIntent
来了解 Activity
A 重新启动。因此,当启动模式为 singleTask
时,您应该在 onCreate
和 onNewIntent
中进行初始化。
Activity A:
public class ActivityA extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
init();
}
private void init(){
// do initialization
}
}
关于java - 当 launchMode 为 singleTask 时,使用 startActivity 强制 Activity 调用 onCreate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566401/