내 앱에서 나중에 다시 사용할 수 있도록 의도 한 데이터를 저장해야합니다 (앱 재시작시). 내가 시도한 것은 >>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 개체를 저장하는 것이 실제로 가능한지 언급 해주십시오. ?? 어떤 방법이 있다면, 그 방법으로 안내해주십시오. 당신이 look at the implementation 경우
모두 성공하지 못했습니다. –
직렬화하려고하는 '의도'로 드릴 다운하십시오. 실제로 직렬화 할 정보가 너무 적을 수 있습니다. 문자열에서 끝나야하는 구현이 지정하는 것과 사용자가 가지고있는 항목을 비교하십시오. –
의도가 'Intent.URI_INTENT_SCHEME' 플래그로 uri로 구문 분석 될 때 문자열에 "의도 :"가 반환됩니다. 즉, 모든 의도 항목이 누락되었습니다. –