2013-02-18 73 views
0

我的應用程序在不同的活動之間切換,切換到另一個活動後每個活動都會被終止。這很好,但我試圖做的是,當用戶殺死應用程序(通過按回退鍵或以其他方式),它的上次運行活動是下次啓動應用程序。將當前活動設置爲啓動活動

我想...

onSaveInstanceState(Bundle bundle) 

...但是這似乎並沒有在其他活動的工作。

是否有另一種方法呢?我也想過直接編輯清單,但得出結論認爲它可能不起作用,而且會很髒。

回答

1

據我所知,例如,你有3個活動:ActivityA,ActivityBActivityC。如果用戶通過ActivityB退出應用,並且稍後再次啓動該應用,則首先需要ActivityB

您可以通過兩種方式來做到這一點。

第一個,你可以有一個單獨的Activity,其中包含一個3 fragments之一的佔位符。然後您可以根據需要替換片段。

第二個,您可以使用SharedPreferences將上次打開的活動存儲在首選項中。您可以在ActivityXonStart()中執行此操作,並在確定要開始哪項活動時將其讀取。

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(); ///根據需要啓動該活動

+0

謝謝! 這正是我所需要的,但是,在那裏有一個小錯誤: PreferenceManager.getString()方法需要2個參數,最後一個是默認值,這使得最後一行不必要。但是,謝謝,我不知道有這樣的事情作爲PreferenceManager ... – user1925304 2013-02-18 18:16:43

+0

我的不好。編輯! – 2013-02-18 18:20:15