2014-03-12 72 views

回答

0

當您向其他活動發送意向時使用finish()方法。當您的startActivity在此聲明後致電使用finish()finish()方法從堆棧中完成活動。如果要顯示以前的活動,請在發送Intent時刪除finish()方法。

+0

它不工作。因爲在活動C上開始活動是呼叫使用完成(),然後它繼續活動D.從後面按D活動C不可見。 – user2799407

+0

從Activity c中刪除finish()。檢查編輯答案。 –

+0

有幫助... –

0

呼叫這樣的花花公子:)

呼叫這樣

Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
       startActivity(i); 

但是當u按從E蓋印,然後把這個在後退按鈕上點擊

Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
      startActivity(i); 
finish(); 

即所有活動只這個特殊的E活動不會保留在所有其他的堆棧中,而是像逆向流動一樣存在。意味着DC,C- B.

+0

如果用戶按下後退按鈕,FirstActivity會保留在堆棧中嗎? – user2799407

+0

不,它不會保持 –

+0

閱讀我的問題,如果用戶從活動D按下,那麼活動必須保持。 – user2799407

0

添加onActivityResult上每個活動類。如果E完成D的onActivityResult將被召喚,那麼你可以再次完成你的D類,等等。這樣你就可以處理任何你想要的東西。要獲得onActivityResult,您需要通過撥打請求代碼startActivityForResult開始您的活動。 對於你參考:Getting a Result from an activity

+0

你能解釋我詳細如何onActivityResult。 – user2799407

+0

我已經在我的答案中給出了一個鏈接.. –

0

就startActivity像

 Intent i = new Intent(currentActivity.this,NextActivity.class); 
     startActivity(i); 
     currentActivity.finish(); 

如果你想殺死後臺運行的活動,然後使用

try 
    { 
     IntentFilter intentFilter = new IntentFilter(); 
     intentFilter.addAction("CLOSE_ALL"); 
     broadcastReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       ActivityName.this.finish(); 
      } 
     }; 
     registerReceiver(broadcastReceiver, intentFilter); 
    } 
    catch(Exception e) 
    { 

    } 
相關問題