2010-05-11 5 views
8

내 기본 영어로 내 질문을 이해할 수 있기를 바랍니다.설정에 인 텐트를 저장하는 해결 방법은 무엇입니까?

내 응용 프로그램에서 사용자는 자신이 선택한 응용 프로그램을 시작하는 버튼을 가질 수 있습니다. 나는 설치된 모든 앱의 목록을 만들고, Intent를 얻고 선택된 앱을 실행하는 데 아무런 문제가 없습니다.

하지만 사용자가 내 응용 프로그램을 사용하는 다음의 설정에서 해당 의도를 저장하고 싶지만, 설정은 나를 기본 데이터 타입 (등 정수, 부울, 문자열,) 저장할 수

그래서, 제 질문은 의도를 현명한 방법으로 저장하는 것입니다.

해결책 찾기를 도와 주시면 감사하겠습니다.

+0

Gson에 기반한이 솔루션을 사용해보십시오. http://stackoverflow.com/a/34580505/2267723 –

답변

23

당신은 Intent를 저장하는 myIntent.toURI()을 사용하고 Intent를 복원 Intent.getIntent(String uri)를 사용해야 포함 String.

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

그레이트! 이 대답을 사랑하십시오! –

+2

정보 만 있으면 _toUri() _이 (가) 향후 제공되지 않을 예정입니다. 대신 ** toUri (int flags) **를 사용하십시오. – JJ86

2

Intent을 저장하는 대신 Intent을 빌드하는 데 필요한 String을 저장할 수 있습니다.

예 :

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

지금 당신은 저장 com.android.notepad.action.EDIT_TITLE

관련 문제