2010-05-11 38 views
8

希望你能用我的基礎英語理解我的問題......任何解決方法在設置中保存意圖?

在我的應用程序中,我允許用戶有一個啓動他選擇的應用程序的按鈕。列出所有安裝的應用程序,獲取Intent並啓動選擇的應用程序,我沒有問題。

但我想保存相應的意圖在設置下一次用戶使用我的應用程序,但設置只允許我保存基本數據類型(整數,布爾,字符串等)

所以,我的問題是如何以聰明的方式保存意圖。

我希望你能幫我找到解決辦法。

+0

嘗試基於GSON此解決方案:http://stackoverflow.com/a/34580505/2267723 – 2016-01-03 19:14:48

回答

23

您應該使用myIntent.toURI()存儲Intent,並使用Intent.getIntent(String uri)恢復IntentString

public void saveIntent(Intent intent) { 
    mSharedPrefs.edit().putString(SOME_KEY, intent.toURI()).commit(); 
} 

public Intent restoreIntent() { 
    String uri = mSharedPrefs.getString(SOME_KEY, *mSomeDefaultUri*); 
    return Intent.getIntent(uri); 
} 
+1

太好了!喜歡這個答案! – 2011-08-19 09:45:08

+2

僅供參考,_toUri()_現已棄用。改用** toUri(int flags)**。 – JJ86 2017-03-22 17:18:30

2

除了保存Intent,您可以保存生成Intent所需的String

例子:

Intent intent = new Intent("com.android.notepad.action.EDIT_TITLE"); 

現在你只存儲一個包含com.android.notepad.action.EDIT_TITLE

相關問題