当 launchMode 为 singleTask 时,强制活动使用 startActivity 调用 onCreate()

Jac*_*ack 1 java android android-activity

我的活动启动模式设置为 android:launchMode="singleTask"

当我调用startActivity()从另一个活动启动它时,它会将它从上次状态带到顶部。

设想:

活动 A 启动活动 B

活动 B 启动活动 A

活动 A 带有旧数据

我使用什么标志来强制它开始干净并调用onCreate()

知道我必须使用android:launchMode="singleTask"来维护常规的应用程序流并且不能切换到android:launchMode="singleTop"

谢谢

编辑(1):

launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
Run Code Online (Sandbox Code Playgroud)

随着 android:launchMode="singleTask"

它解决了我要问的问题,但它造成了一个最糟糕的问题

现在,当我完成活动 A(由活动 A 启动的活动 B 启动)时,我发现自己最终到达了我使用的最后一个应用程序,它应该登陆活动 B。

ami*_*phy 5

尝试使用onNewIntent以了解ActivityA 已重新启动。所以,你应该在这两个做初始化onCreateonNewIntent何时推出模式singleTask

活动一:

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
    }

}
Run Code Online (Sandbox Code Playgroud)