[英]onBackPressed causing problems in code
我在活動SCORE中有以下代碼:
@Override
public void onBackPressed() {
Intent i = new Intent(Score.this, MainActivity.class);
startActivity(i);
}
基本上,當用戶回擊時,我希望他們回到主要活動。 在主要我有一個按鈕,當點擊它退出應用程序是這樣的:
case R.id.exitButton:
finish();
break;
因此,當我啟動應用程序並按下退出按鈕時,它可以正常工作,退出該應用程序。 但是,當我進入得分頁面並回擊,然后比退出按鈕應用程序退出時,它會返回得分頁面。 誰能告訴我我做錯了嗎?
您從Score啟動MainActivity。 得分尚未完成,因此“得分”活動仍處於活動狀態並且在導航堆棧上。
嘗試執行以下操作:
@Override
public void onBackPressed() {
Intent i = new Intent(Score.this, MainActivity.class);
startActivity(i);
finish();//Finishing the score activity is needed
}
如上面的注釋所述,有一個退出按鈕是不正常的,但是如果需要和/或需要,您可以自由實現此按鈕。 有關后堆棧的更多信息,請參閱以下android文檔。
http://developer.android.com/guide/components/tasks-and-back-stack.html
還可以使用多種方法返回活動活動,查看Intent標志。 如以下文檔頁面上的FLAG_ACTIVITY_CLEAR_TOP:
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP
我認為問題是您使用finsh()方法來完成活動。 可能是您可以使用如下方法:
case R.id.exitButton:
System.exit(0);
break;
希望對您有幫助。
要從分數單擊返回后進入主活動,您需要添加以下內容。
@Override
public void onBackPressed() {
finish();
}
對於單擊退出按鈕后從該應用程序退出,請添加以下內容。
case R.id.exit:
System.exit(0);
break;
希望這對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.