在我的MainActivity类中,我有一个方法可以启动一个新活动并杀死当前的活动:
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
finish();
在新活动中,如果我按下后退按钮,应用程序会按预期最小化/关闭,但是当我重新打开应用程序时,它不再显示在NewActivity中,而是返回到MainActivity!
为什么会这样?
答案 0 :(得分:2)
因为当它重新开始时,即使在你完成任务之后,它也会启动“Main / Launcher”Activity
。您可以在AndroidManifest
。
<activity android:name=".MainActivity"
...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
默认情况下,按后退按钮会结束当前Activity
,如果当前任务中不存在其他Activity
,则表示该任务已结束。
解决方法是在SharedPreferences
中保存一些标记或状态,或者以某种方式保留它以再次读取它以将流引导到NewActivity
。
在MainActivity
中,执行以下操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
if(shouldStartNewActivity()) {
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
finish();
} else {
super.onCreate(savedInstanceState);
}
}
private boolean shouldStartNewActivity() {
//Your logic to check if NewActivity should be started directly
}