2010-05-11 18 views
8

Ben kullanıcı kendi seçtiği uygulamayı başlatmak bir düğme için izin, benim temel İngilizce ile sorumu ... Benim uygulamadaAyarlarda bir Niyet kaydetmek için herhangi bir geçici çözüm var mı?

anlayacaksınız Umut. Yüklü tüm uygulamaların bir listesini yapmak, Niyet almak ve seçilen uygulamayı başlatmak için hiçbir sorunum yok.

Ama kullanıcı benim uygulamayı kullanmak sefere ayarlarında gelen niyet kaydetmek istiyorum ama ayarları sadece bana temel veri türü (vb Tamsayı, boolean, Strings,) kaydetmenize izin

Öyleyse, benim sorum akıllıca bir niyetin nasıl kaydedileceğidir.

Umarım bir çözüm bulmamda bana yardımcı olabilirsiniz.

+0

GSON dayalı bu çözüm deneyin: http://stackoverflow.com/a/34580505/2267723 –

cevap

23

Sen Intent saklamak için myIntent.toURI() kullanın ve Intent geri Intent.getIntent(String uri) kullanmalıdır içeren 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

Büyük! Bu cevabı sevin! –

+2

Sadece bilgi için _toUri() _ şimdi kullanımdan kaldırıldı. Bunun yerine ** toUri (int flags) ** kullanın. – JJ86

2

Intent'u kaydetmek yerine, Intent'u oluşturmak için gereken String dosyasını kaydedebilirsiniz.

Örnek:

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

Şimdi sadece depolamak bir com.android.notepad.action.EDIT_TITLE

İlgili konular