2012-02-09 126 views
1

我需要編寫一個按鈕才能返回主應用程序活動。按鈕在應用程序中返回

public void onGotoMainActivity(View View) 
    { 
     Intent intent = new Intent(View.getContext(), MainActivity.class); 
     this.startActivity(intent); 
    } 

主要活動已經開始並且沒有被銷燬。所以我不認爲這會是一個「新」意圖,也不應該「開始活動」?它不應該僅僅把主要活動稱爲重點?

回答

1

你應該設置FLAG_ACTIVITY_CLEAR_TOP所以不是啓動Activity的新實例,它會清除所有Activities堆棧的頂部(現頂部)與新Intent

public void onGotoMainActivity(View View) 
    { 
     Intent intent = new Intent(View.getContext(), MainActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     this.startActivity(intent); 
    } 
+0

是否這樣? public void onGotoLatePassActivity(View View) Intent intent = new Intent(View.getContext(),LatePassActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); this.startActivity(intent); } LatePassActivity是我的主要活動類 此代碼仍然使應用程序意外崩潰。 – UPGRAYEDD 2012-02-09 04:53:55

+0

您應該使用:Intent intent = new Intent(getApplicationContext(),LatePassActivity.class); – R4j 2012-02-10 03:24:54

0
傳遞的意圖, Activity

只需使用finish()onClick()

或添加這個,如果你超過1個活動

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
0

你的意思是模擬後退按鈕嗎?

dispatchKeyevent(Keyevent.ACTION_DOWN, Keyevent.BUTTON_BACK); 
dispatchKeyevent(Keyevent.ACTION_UP, Keyevent.BUTTON_BACK); 
1

您也可以使用它。

Intent intent = new Intent(); 
setResult(RESULT_OK, intent); 
finish(); 
+0

這些都沒有幫助,它都會崩潰我的應用程序。有什麼建議? – UPGRAYEDD 2012-02-10 02:31:45

+0

你可以把你的主要類代碼? – Dhruvisha 2012-02-10 06:19:02

0

這清除了我的一切。

public void onGotoMainActiviy(View View) 
{ 
    Intent intent = new Intent(View.getContext(), MainActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    CurrentActivity.this.finish(); 
} 

謝謝大家,讓我走上正軌。這些活動的生命週期是極具價值的信息。

相關問題