2012-04-05 150 views
1

我用下面的代碼活動之間進行切換:不要讓應用程序按後再次啓動「關閉」

Intent b = new Intent(nowActivity.this, About.class); 
startActivity(b); 
return true; 

此代碼的工作完美,但它似乎讓它啓動一個新的活動在現有活動之上。

示例:我在Android手機上啓動應用程序,然後按菜單按鈕在屏幕上顯示選項菜單。然後我點擊「關於」進入應用程序的關於頁面。如果我然後按菜單中的「關閉」選項,屏幕上就會顯示第一頁(應用程序的主屏幕),所有內容都回到方塊1,就像我再次打開應用程序一樣。

我不希望它像這樣行事,我現在問你,我該如何解決這個問題?

在此先感謝。

+0

目前還不清楚點擊關閉按鈕 – Nishant 2012-04-05 04:17:31

+0

該應用程序後,我將關閉後,你想要什麼按下「關閉」按鈕。這是有道理的,你知道 – Erik 2012-04-05 04:18:35

+0

你想讓活動只運行一次嗎? – Bhavin 2012-04-05 04:21:48

回答

1

我得到它的工作!這裏的解決方案:

nowActivity.java

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
    case R.id.menuItem1: 
     Toast.makeText(this, "Du är redan på startsidan", Toast.LENGTH_SHORT).show(); 
     return false; 

    case R.id.menuItem2: 
     Intent b = new Intent(nowActivity.this, About.class); 
     b.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(b); 
     return true; 

    case R.id.menuItem3: 
     android.os.Process.killProcess(android.os.Process.myPid()); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

About.java

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menuItem1: 
     Intent a = new Intent(About.this, nowActivity.class); 
     a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(a); 
     return true; 

    case R.id.menuItem2: 
     Toast.makeText(this, "Du är redan på \"Om\"-sidan", Toast.LENGTH_SHORT).show(); 
     return false; 

    case R.id.menuItem3: 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     startActivity(intent); 
     System.exit(0); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 
0

編輯代碼:調用finish()摧毀的第一個活動

Intent b = new Intent(nowActivity.this, About.class); 
startActivity(b); 
finish(); 
return true; 
+0

謝謝,但我不想在切換到新活動時關閉活動。當我點擊手機上的後退按鈕時,應用程序將返回一步(例如,從「關於」到「主頁」)。如果我再次按下相同的按鈕,應用程序將關閉,除非我先選擇「關閉」。 – Erik 2012-04-05 04:22:56

+0

檢查了這個http://stackoverflow.com/questions/2042222/close-application – Nishant 2012-04-05 04:26:36

+0

謝謝:)這些答案有點整齊,但看到我對hopia的答案評論。 – Erik 2012-04-05 04:42:46

0

如何當用戶點擊您的「關閉」按鈕回到主屏幕?

下面的代碼摘自: How to return to home screen from Activity

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
startActivity(intent); 
+0

謝謝!這解決了我的問題。當我按下手機上的後退按鈕時,即使應用程序應回到「主頁」,應用程序也會關閉。 – Erik 2012-04-05 04:42:12

相關問題