ile düzgün çalışmaz Uygulamamın Etkinlik yığınının Etkinlikler'ini yalnızca bir örneğiniz olmasını istiyorum. ListActivities olan birkaç ekranım var ve ListActivitesinin bir başka örneğinde (eklenen, düzenlenmiş, kaldırılmış, vb.) ListActivitesinin önceki bir örneğinde listelerin güncelleştirilmesiyle ilgili acı ve sıkıntıdan kurtulmak istemiyorum. (ya da bunu yapmak için kolay bir yolu var mı?).startActivityForResult, launchMode singleInstance
Not: Tek bir tıklamanın bunu başaracağını okudum (Geri düğmesine basarsanız Etkinliği bozarsa da), ancak çalışmaz. Bir menüm var ve Gelen Kutusu ekranına gidersem, Hızlı Listeleme ekranına gidiyorum ve Gelen Kutusu ekranıma tekrar giderim, yeni bir Gelen Kutusu Etkinliği oluşturur.
Şu anda, ListActivities'ımda, launchMode'u singleInstance olarak ayarlıyorum. Sorun şudur: startActivityForResult kullanarak başka bir Etkinlik başlatırsam, onActivityResult işleyicisi hemen başlatılır (yeni Etkinlik oluşturulmadan önce). Bir sonraki ekranda sonucu döndürmek için gerekli eylemi gerçekleştirdiğimde, onActivityResult işleyicisi yanmaz.
Neler oluyor? Gönderen
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_QUICKLIST) {
if (resultCode == Activity.RESULT_OK) {
Bundle extras = data.getExtras();
if (extras != null) {
int id = extras.getInt("ql_id");
if (id > 0) {
launchQLItemsThread(id);
}
}
}
}
}
Cevabınız için teşekkür ederiz. Ne yapmamı istediğinizi anlıyorum, ancak sorunlara neden olmaz mı? Açıkçası aynı şeyi onSaveInstanceState ve onRestoreInstanceState işleyicilerinde yapmam gerekecek. onResume ve OnPause okudum ve veritabanından bilgi tasarruf üzerine, başvurum gereksiz yere veritabanından okuyacak ve hiç evet, onRestoreInstanceState işleyicisi vurmak gerekir SavedInstanceState gelen okursanız? Ayrıca, bu gerçekten Android devleri için ortak uygulama nedir? ListActivity'nin birden çok örneği için ListActivity verilerini tekil olarak kaydediyor musunuz? Yine, – Andrew
'a yardım ettiğiniz için teşekkürler Ayrıca, singleTop'un neden benim için çalışmadığını açıklayabilir misiniz? Yoksa anlamadım mı? – Andrew
SavedInstanceState yalnızca belirli bir etkinlik örneğinin durumunu geri yüklemek için kullanışlıdır; içeriğini listelemek değil, kaydırma konumunu kaydetmek için kullanın. Ne yapmak istediğiniz, aktivitenizin tüm örneklerinin bazı durumları paylaşmasıdır, bu nedenle bu durumu bir veritabanında kalıcı ya da statik bir üyeyken ağdan yalnızca bir veri önbelleği olması durumunda koymak istersiniz.İkincisini söylediklerine göre öneririm; Sadece veriyi saklamak için bir DB kullanmanız yeterlidir, böylece gelecekte ağ üzerinden göndermeniz gerekir, böylece kaybetmezsiniz. –