我的活动启动模式设置为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);
与android:launchMode="singleTask"
它解决了我要问的问题,但创建了一个最糟糕的问题
现在,当我完成活动A(由活动B发起的活动B由活动A发起的活动)时,我发现自己遇到的是我正在使用的上一个应用程序,该应用程序应在该应用程序上到达活动B。
答案 0 :(得分:4)
尝试使用onNewIntent
来了解Activity
A已重新启动。因此,当启动模式为onCreate
时,应同时在onNewIntent
和singleTask
中进行初始化。
活动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
}
}