私のアプリでは、後で使用するために意図的なデータを保存する必要があります(アプリ再起動時)。 私が試したことはある:>>String
を取得するためにUri
に 解析Intent
を取得するためにSharedPreferences
SharedPreferencesからインテントを保存して取得する
で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
両方とも成功しない –
シリアル化しようとしている「インテント」にドリルダウンします。実際にはシリアライズ可能な情報が少なすぎます。あなたがそこにあるものを、文字列に終わるはずの実装が指示するものと比較してください。 –
intent.URI_INTENT_SCHEMEフラグでURIを解析しようとすると、文字列intent:が返されます。つまり、すべてのインテントエキストラがないことを意味します。 –