我的應用程序在不同的活動之間切換,切換到另一個活動後每個活動都會被終止。這很好,但我試圖做的是,當用戶殺死應用程序(通過按回退鍵或以其他方式),它的上次運行活動是下次啓動應用程序。將當前活動設置爲啓動活動
我想...
onSaveInstanceState(Bundle bundle)
...但是這似乎並沒有在其他活動的工作。
是否有另一種方法呢?我也想過直接編輯清單,但得出結論認爲它可能不起作用,而且會很髒。
我的應用程序在不同的活動之間切換,切換到另一個活動後每個活動都會被終止。這很好,但我試圖做的是,當用戶殺死應用程序(通過按回退鍵或以其他方式),它的上次運行活動是下次啓動應用程序。將當前活動設置爲啓動活動
我想...
onSaveInstanceState(Bundle bundle)
...但是這似乎並沒有在其他活動的工作。
是否有另一種方法呢?我也想過直接編輯清單,但得出結論認爲它可能不起作用,而且會很髒。
據我所知,例如,你有3個活動:ActivityA
,ActivityB
和ActivityC
。如果用戶通過ActivityB
退出應用,並且稍後再次啓動該應用,則首先需要ActivityB
。
您可以通過兩種方式來做到這一點。
第一個,你可以有一個單獨的Activity
,其中包含一個3 fragments之一的佔位符。然後您可以根據需要替換片段。
第二個,您可以使用SharedPreferences
將上次打開的活動存儲在首選項中。您可以在ActivityX
的onStart()
中執行此操作,並在確定要開始哪項活動時將其讀取。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// save:
Editor edit = prefs.edit();
edit.putString("lastActivity", getClass().getName());
edit.commit();
// restore later:
String activityName = prefs.getString("lastActivity", YourActivityA.getClass().getName());
// if(activityName == null)activityName = YourActivityA.getClass()。getName(); ///根據需要啓動該活動
謝謝! 這正是我所需要的,但是,在那裏有一個小錯誤: PreferenceManager.getString()方法需要2個參數,最後一個是默認值,這使得最後一行不必要。但是,謝謝,我不知道有這樣的事情作爲PreferenceManager ... – user1925304 2013-02-18 18:16:43
我的不好。編輯! – 2013-02-18 18:20:15