在共享偏好中保存意图

我有一个应用程序,我可以启动我的手机上安装的其他应用程序,长按我得到应用程序选择器,结果我收到一个意图数据,我怎么能保存它所以用户关闭时回到我的应用程序有相同的快捷方式设置?

我保存这样的其他东西

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putInt("Counter1", counter); editor.putBoolean("FirstRun", firstRun); editor.putString("Label2", label2S); editor.commit(); 

但我无法对意图做同样的事情

好吧,我发现了一种保存意图的方法

 SharedPreferences settings = getSharedPreferences(PREFERENCES, 0); SharedPreferences.Editor editor = settings.edit(); String uriString = data.toUri(requestCode); editor.putString("Contacts_app", uriString); editor.commit(); 

然后我像这样检索它

 SharedPreferences settings = getSharedPreferences(PREFERENCES, 0); String contactsApp = settings.getString("Contacts_app", null); try { telApp = Intent.parseUri(contactsApp, 0); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

您可以将对象序列化为字符串,并将结果字符串保存在首选项中。 一种简单的方法是使用Google Gson以json格式序列化它。