2014-11-16 20 views
0

我有活動A和活動B.當應用打開活動A時打開。Android如何在後臺放置活動但不在堆棧中

我去A到B那麼你怎麼「從B回到A」而不破壞B,這樣當你從A去B時,這個過程是非常快的? (又如何打開舊B而不創建新B?)

還有一個問題,當你「從B回到A」時,是否有一種方法可以防止B在你出現時出現當你回到A時按下返回按鈕?

回答

1
  1. 當創建B,做所有的辛勤工作在onCreate中,稍後恢復時,啓動速度會更快。只有當它沒有被使用和android需要釋放一些內存時,B才被銷燬。由於它在後臺,切換到它將會非常快。爲了加快速度,你可以不動畫切換:

    Intent intent = new Intent(this, B.class); 
        startActivity(intent); 
        overridePendingTransition(0, 0); 
    
  2. 爲了防止倍數b活動中創建,在您的清單中的B活性標籤設置:

    android:launchMode="singleTask" 
    
  3. 你的B回去後到A,再回來,將退出應用程序。除非你明確地去A。然後,你將要覆蓋onBackPressed()在活動A,始終退出,而不是要回到B.

+0

1的應用程序)好像正在每次創建我的活動B,而不是恢復。我從A到B和B到A顯式使用Intent intent - 新的intent ... startActivity,因爲我需要在putExtra中同時發送額外的數據。你知道如何在每次打開B時恢復活動B而不創建它? B是singleTask。 3)如何完全以編程方式退出應用程序?完成()只是退出該活動。 – coolcool1994

+0

事情是在我的應用程序,當我從B到A,按回退按鈕只是退出應用程序。我不知道爲什麼,但它應該去B而不是..我認爲B每次都被破壞,但我沒有在B中調用finish(),而是我只是startActivity來活動A. – coolcool1994

+0

我想你可以通過moveTaskToBack(true)退出應用程序; – coolcool1994