java - 当 launchMode 为 singleTask 时,使用 startActivity 强制 Activity 调用 onCreate()

标签 java android android-activity

我的 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 时,您应该在 onCreateonNewIntent 中进行初始化。

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/

相关文章:

java - Java 中的 try-catch block 应该有多深?

android - com.github.PhilJay :MPAndroidChart library 的问题

android - 传感器肖像错字

Android Activity 从左到右过渡,带有缓入缓出曲线

java - JList 列表项被压缩

Java OpenGL Texture2d 非法参数异常

当我作为 Junit 测试运行时,Java 测试文件有效,而不是作为 Java 应用程序运行

javascript - 从 Activity 中调用 javascript 函数?

java - 我如何知道与服务器的连接是否正确?

javascript - 从单独的类调用 Activity 函数