帖子已被編輯Android應用程序沒有正常關閉時,點擊返回
我編程的Android應用程序作爲一個實踐項目學習的目的。我遇到一個問題,當我在訪問設置活動並在其中進行更改(複選框選項)後按主活動上的後退按鈕時,它會返回設置活動。如果在設置活動中沒有進行任何更改,並且我回到主要活動並再次按下,則退出正常。如果我訪問任何其他活動,然後返回主頁,請再次按下,一鍵點擊即可關閉。
下面您會看到設置活動和主要活動的後退按鈕代碼。
user_settings_activity.java(設置活動):
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
User_Options.java(主要活動):
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
請告訴我,以所需的任何其他代碼。
任何幫助解決方案,將不勝感激。
謝謝。
SOLUTION
首先,謝謝大家誰堅持這一問題提供答覆和意見。我感謝大家的幫助。現在經過一番修改之後,我終於設法解決了這個問題。代碼如下。
設置的活動:
// For the go back button.
public void go_back_butt(View v){
// Goes to main activity.
Intent main_activity = new Intent(getApplicationContext(), User_Options.class);
main_activity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
main_activity.putExtra("EXIT", true);
startActivity(main_activity);
finish();
}
而且
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
主要活動:
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
說明:
如前所述@chichiangho,我需要採取IN-深入瞭解在棧上。由於我在這方面的知識有限,所以我設法弄清楚,由於某種原因,設置活動並沒有像我最初的理論那樣正確關閉。所以這讓我想知道如何在保留我保存的設置的同時正確處理這個問題。
感謝@kevz和@MFP響應,我能夠創建一個解決方案。我實現了一個「返回」按鈕(參見代碼),並在主要活動上使用了kill過程來確保應用程序「正常退出」。我還將設置活動的意圖傳遞給主要活動以確保完成()過程發生。
謝謝大家誰參與了,並花時間發佈你的有用答案,讓我在箱子外思考更多,同時學習有關android應用開發的新東西=)。
我讀了你的簡短版本,我猜你在傳遞到第二個活動時不會打電話完成 –
@Mohit G:r在BackPress的SettingActivity中啓動MainActivity? – kevz
我認爲這是我在手機中發現的問題,僅在調試我的應用程序時啓動兩次 – Androider