重新进入应用程序并从头开始?

时间:2016-04-12 03:32:57

标签: android android-intent

在我的MainActivity类中,我有一个方法可以启动一个新活动并杀死当前的活动:

Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
finish();

在新活动中,如果我按下后退按钮,应用程序会按预期最小化/关闭,但是当我重新打开应用程序时,它不再显示在NewActivity中,而是返回到MainActivity!

为什么会这样?

1 个答案:

答案 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
}