[英]How to finish the current activity and start another one?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* Check for login session. If not logged in launch
* login activity
* */
if (MyApplication.getInstance().getPrefManager().getUser() == null) {
launchLoginActivity();
Log.e(TAG, "Still im in MainActivity !!! ");
}
....
....
這是啟動活動方法:
private void launchLoginActivity() {
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
Log.e(TAG, "launchLoginActivity");
startActivity(intent);
finish();
}
該活動已啟動,但我仍處於主要活動中。
如您在控制台中所看到的,將顯示兩條日志消息。
一個在啟動方法中,另一個在啟動方法調用后的主活動中。
如何完成我的主要活動,而在主要活動中不顯示日志消息?
從onCreate()
退出后,您的主要活動最終將結束。 在主要活動的onDestroy()
放置一些調試日志,您將看到您進入那里。 如果要在調用第二個活動后跳過所有內容,則在此之后再輸入一個return
。 還有一個Activity.isFinishing()
API,如果您的活動結束,該API將返回true。
好了,完成所討論的活動,然后返回,以便開始活動脫離“ onCreate”方法,並且活動在正常的活動周期中被破壞。
if (MyApplication.getInstance().getPrefManager().getUser() == null) {
launchLoginActivity(); //the finish part already happens here. I did not see that.
return;
Log.e(TAG, "Still im in MainActivity !!! ");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.