簡體   English   中英

onBackPressed導致代碼中的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM