我正在创建一个应用程序,当我正确登录时显示另一个活动,但是当我按下然后返回到登录活动显示的应用程序时,在主屏幕中。
我能够避免这种方式覆盖onBackPressed:
public void onBackPressed()
moveTaskToBack(true);
}
这是最好的方法吗?退出时是否有更合适的方法来保持应用程序的状态?
答案 0 :(得分:0)
在启动intent call finish()
后的登录活动中完成破坏你的活动,避免再次自动运行。
答案 1 :(得分:0)
您的问题是您将LoginActivity保留在堆栈中。所以当你按下它会杀死MainActivity(登录后),因为LoginAcitivity仍然存在。它将再次显示。最好是在开始新活动后杀死LoginAcitivty。
在LoginActivity中调用它:
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
finish();
答案 2 :(得分:0)
正如您所了解的那样,您希望清除整个历史记录堆栈并开始新的活动。为此,在API级别11中添加了一个新的Intent Flag,即:Intent.FLAG_ACTIVITY_CLEAR_TASK
为了澄清,请使用:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
对于API< = 10,现在可以使用IntentCompat类。可以使用IntentCompat.FLAG_ACTIVITY_CLEAR_TASK标志来清除任务。因此,您也可以支持API级别11。