Android Activity生命周期冲突

时间:2012-06-07 12:26:52

标签: android

我有一个包含3个活动的应用

LoginActivity
ActivityA
ActivityB

用户以LoginActivity开头。登录成功后,他去了ActivityA。 ActivityA使用startActivityForResult调用ActivityB并使用onActivityResult处理响应。

如果用户从ActivityA或ActivityB按“主页”按钮并重新启动应用程序,我想将用户带回LoginActivity

我尝试过使用onRestart和onResume。当ActivityA通过主屏幕或onActivityResult重新初始化时(当用户从​​ActivityB返回时),都会调用这两个。

如何实施此要求?

PS:我在SO上检查了类似的问题,但没有找到符合我要求的东西。

感谢。

3 个答案:

答案 0 :(得分:0)

当您声明您的意图开始活动A和活动B时,请尝试使用nohistory标志,例如

Intent intent = new Intent(this, ActivityA.class);

// do not keep this intent in history
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

startActivity(intent);

然后,当您重新启动时,它将返回登录活动。

答案 1 :(得分:0)

我会将您重定向到此问题here。我认为它应该回答你的问题。

答案 2 :(得分:0)

尝试在每个活动的AndroidManifest文件中写这个

 <activity android:launchMode="singleTask"
        android:name=".LoginActivity" />

 <activity android:launchMode="singleTask"
        android:name=".ActivityA" />

 <activity android:launchMode="singleTask"
        android:name=".ActivityB" />