2017-12-21 12 views
0

私のアプリでは、後で使用するために意図的なデータを保存する必要があります(アプリ再起動時)。 私が試したことはある:>>Stringを取得するためにUriに 解析Intentを取得するためにSharedPreferencesSharedPreferencesからインテントを保存して取得する

Stringを入れて:

を保存するにはSharedPreferencesからStringを取得する>>使用はStringを得ましたそれを解析するためにIntent

これは私のコードは、

private void saveIntent(Intent data){ 
    editor = prefs.edit(); 
    String uri = data.toUri(0); //intent.toURI() deprecated 
    editor.putString("INTENT_DATA", uri); 
    editor.commit(); 
} 

private void retrieveIntent(){ 
    String intentString = prefs.getString("INTENT_DATA", null); 
    try { 
      mIntent = Intent.parseUri(intentString, 0); 
    } catch (URISyntaxException e) { 
      e.printStackTrace(); 
    } 
} 

私はこのアプローチを試しましたが、空を返します。私は、コードをデバッグしようとしましたが、これはString uri

saveIntent()方法、data.toUri(0)譲受人「空の文字列」で、ためであることがわかってきた他のいくつかの方法がある場合、何かが間違ってやっているところを教えてください、と言及をしてくださいすべてのデータがバインドされたIntentオブジェクトを格納します。

私はインターネットを検索してJSONの構文解析を行うことができますが、そのアプローチを試した人々の大部分は、何らかのアクティビティの結果としてIntentオブジェクトにバンドルされている未知のデータを失うことについて苦情を言います。

また、Intentオブジェクトを本当に保存できるかどうかを教えてください。何か方法があれば、その方法に私を導いてください。あなたはIntentフラグURI_ANDROID_APP_SCHEMEまたはURI_INTENT_SCHEMEセットを持っている、またはそれはURIを記入dataだ持っている必要がありますいずれかのことがわかりlook at the implementation

答えて

0

あなたの場合。

私は個人的にこのようなことはしませんでしたが、データURIが添付されていない明示的な意図がある場合は、いくつかのフラグをいくつかの文字列表現に変換する必要があります。

+0

両方とも成功しない –

+0

シリアル化しようとしている「インテント」にドリルダウンします。実際にはシリアライズ可能な情報が少なすぎます。あなたがそこにあるものを、文字列に終わるはずの実装が指示するものと比較してください。 –

+0

intent.URI_INTENT_SCHEMEフラグでURIを解析しようとすると、文字列intent:が返されます。つまり、すべてのインテントエキストラがないことを意味します。 –

関連する問題