这篇文章上次修改于 618 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

Activity 保持后台不退出

有时候想要在连续点击两次返回键时使 Activity 退到后台,但保持不退出,当再次点击 app 时可以继续之前的 Activity,而不是重新打开新的 Activity,可以按如下方法做:

private long firstBackPressTime;
@Override
public void onBackPressed() {
    long secondBackPressTime = System.currentTimeMillis();
    if (secondBackPressTime - firstBackPressTime < 1000) {
        moveTaskToBack(true);
    } else {
        firstBackPressTime = System.currentTimeMillis();
        Toast.makeText(this, "再次点击返回键回到桌面", Toast.LENGTH_SHORT).show();
    }
}

有的资料里说还需要在 AndroidManifest.xml 中设置 ActivitylaunchMode 属性为 singleInstance,如下:

<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:theme="@style/AppTheme.NoActionBar" />

但是据我实际测试,不加这个属性也可以,加了反而不行了。