2011-10-17 14 views
5

Bir kullanıcı bir kişi seçtikten sonra devam eden bir etkinliğim var. Şimdi kullanıcı bir kayıt seçmeden önceSavedInstanceState çağrılır ve Bundle'a bir dize koyarım. Şimdi, kullanıcı kişiyi seçtikten ve sonuçlar döndükten sonra. onRestoreInstanceState çağrılmıyor. sadece onResume() çağrılır. Etkinlik yeniden başlatıldığında dizgemi demetlerden dışarı çekmeyi nasıl başarabilirim? SonraDizgeyi onResume() öğesinde demet nasıl çekilir?

Intent i = new Intent(this. ActivityB.class); 
i.putExtra("Key","Value"); 
startActivity(i); 

:

+0

bu soruyu kontrol edin: http://stackoverflow.com/questions/2497205/how-to-return-a-result-startactivityforresult-from-a-tabhost-activity – slayton

+0

Bunun benim ile ne ilgisi olduğunu anlamıyorum soru –

cevap

5

, sizinle A noktasından B noktasına bilgi aktarır iki Faaliyetler A ve B, ve A'dan B'ye bilgi aktarmak istiyorsanız A Etkinliği Etkinlik B. başlar Diyelim Eğer farklı bir yöntem kullanmak zorunda B den a bilgi aktarmak istiyorsanız Etkinlik B'de sen Ancak

String value = this.getIntent().getExtras().getString("keyName"); 

ile dize alabilirsiniz. startActivity kullanmak yerine startActivityForResult'u kullanmanız gerekir. Bu yöntemin açıklaması burada bulunur: How to return a result (startActivityForResult) from a TabHost Activity?

+0

getIntent() –

+0

için bir getBundle yöntemi yok. Cevabımı kontrol et – dymmeh

+0

Bu yüzden onSavedInstanceState, onCreate ve onRestoreInstanceState dışındaki Etkinlik paketini almanın bir yolu yok mu? –

3

İlk, onRestoreInstanceState ateş değil neden: documentation göre, onRestoreInstanceState activity lifecycle diagram göre, sadece onCreate sonra çağrılan, onStart(), sonra çağrılan veya onRestart. Kullanıcı bir kişi bir kişi seçmeye gittiğinde ana etkinliğiniz yok edilmezse, onStart asla ateş etmeyecek ve RestoreInstanceState'de asla ateş açmayacaktır. Bu şema, "Aktivitenin önünde başka bir etkinlik gelir" ve "OnPause" tetiklendiğinde durumun böyle olduğunu gösterir. Bundan sonra, Sisteminiz yalnızca daha fazla belleğe ihtiyaç duyuyorsa, Etkinliğiniz öldürülecektir.

İkincisi, kaydetmiş olduğunuz kayıttan önce numarayı nasıl alabilirsiniz? Aktivite bellekte kaldığı için yerel değişken bunu yapmalıdır. Etkinliğin 'un belleğinde kalmayacağı bir noktaya ulaşırsanız, onRestoreInstanceState yanmalıdır.

+0

Teşekkürler çok. Son kısmın yapmaya çalıştığım şey çok fiyakalıydı. –

İlgili konular