OnResume () nasıl kullanılır?


86

Bana onResume()Android'de kullanılan bir örnek verebilir misiniz ?

Ayrıca, başka bir işlemin sonunda etkinliği yeniden başlatmak istersem, hangi yöntem çalıştırılır - onCreate()veya onResume()?

Ve verileri güncellemek istersem, nasıl koyarım onResume()?


onResume (), bir aramadan veya başka bir şeyden aktiviteye geri döndüğünüzde çağrılır. OnResume yöntemini onCreate () ile benzer şekilde geçersiz kılabilir ve görevi gerçekleştirebilirsiniz.
Jibяaᴎ Khaᴎ

Bu , Android uygulamasının yaşam döngüsünü daha iyi anlamanıza yardımcı olabilir.
TronicZomB

2
Bu yöntemlerin çağrılma sırası Android geliştirici belgelerinde açıklanmıştır: developer.android.com/reference/android/app/…
Michael

1
bir cevap seçtiğinizden emin olun. SO'ya hoş geldiniz.
donfede

Yanıtlar:


131

Yeniden başlatılan herhangi bir Activity, ilk önce çalıştırılan onResume () yöntemine sahiptir .

Bu yöntemi kullanmak için şunu yapın:

@Override
public void onResume(){
    super.onResume();
    // put your code here...

}

72

Uygulamayı yeniden başlatmak sizi arayacaktır OnCreate().

Duraklatıldığında uygulamaya devam etmek sizi arayacaktır OnResume(). Https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle adresindeki resmi belgelerden etkinlik yaşam döngüsünün bir diyagramını burada bulabilirsiniz.

https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle adresinde https://developer.android.com/images/activity_lifecycle.png adresinden Android etkinlik yaşam döngüsü


1
Bağlantı sağlamak için hiper bağlantıyı kullanın.
Manoj Fegde

bağlantı bazen bana sorun veriyor. neden bilmiyorum
Viswanath Lekshmanan

2
Aktivite yaşam döngüsünün parçası olan yöntemlerden herhangi birini manuel olarak çağırmanızı önermiyorum :), bu birçok soruna neden olabilir.
Cata

1
@Cata, Viswanath'ın yöntemlerin çağrılacağı anlamına geldiğini varsaydım ve cevabı buna göre güncelledim.
Mathieu K.

Bugünlerde onResume'un onCreate'den önce çağrıldığını not etmek istedim!
mdre

28

Anlamanın en iyi yolu, tüm LifeCycle yöntemlerinin etkinliğinizde geçersiz kılınması ve her birine bir kesme noktası (öykünücüyü kontrol ediyorsanız) veya bir Günlük yerleştirmektir. Hangisinin ne zaman arandığını öğreneceksiniz.

Bir spoiler gibi onCreate()önce çağrılır, sonra ana ekrana giderek veya başka bir etkinlik başlatarak etkinliği duraklatırsanız onPause()çağrılır. İşletim sistemi bu arada etkinliği yok ederse onDestroy()çağrılır. Uygulamayı devam ettirirseniz ve uygulama zaten yok onCreate()edilirse, aranır veyaonResume() şekilde aranır.

Düzenleme: Unuttum onStop(), daha önce aranıyor onDestroy().

Bahsettiğim alıştırmayı yapın ve daha iyi anlayacaksınız.


1
Bir süredir bu kadar ayrıntılı bir açıklama arıyordum, bu gerçekten mükemmel uygulama aktivite döngüsünü oluşturmama yardımcı oldu. Teşekkür ederim.
Keno Clayton

Başlamayı unuttun ()
Dory Daniel

9

Önceki cevapların çoğu, nasıl, neden ve ne zaman kullanılacağını açıklamak için iyi bir iş çıkarıyor, onResume()ancak sizin yanıtınızı yeniden oluşturmakla ilgili bir şeyler eklemek istiyorum Activity.

OnCreate () veya onResume () yönteminin çalıştırıldığı başka bir yöntemin uygulanmasının sonunda etkinliği yeniden başlatmak isteyip istemediğimi bilmek istiyorum

Cevap, onCreate()Ancak, onu gerçekten yeniden yaratmaya karar verirken, kendinize ne kadarının Activityyeniden yaratılması gerektiğini sormalısınız . O bir adaptör verileri ise, o zaman arayabilirsin, listesi için söylemek notifyDataChanged()üzerine adapteryeniden doldurmak içinadapter ve her şeyi yeniden çizmesi gerekmez.

Sadece belirli güncellemeniz gerekiyorsa Ayrıca viewshepsi değil o zaman aramak daha verimli olabilir invalidate()üzerinde viewihtiyaç güncellenen ki (s). Bu yalnızca bunları yeniden çizecek viewsve muhtemelen uygulamanızın daha sorunsuz çalışmasına izin verecektir. umuyorum ki bu sana yardım edebilir.


5

onResume()etkinlik yaşam döngüsü boyunca adı verilen yöntemlerden biridir . onResume()muadili etmektir onPause()gizler onu bu yeni aktiviteyi başlarsanız hangi bir etkinlik görünümden gizlenir her zaman, örneğin denir. onResume()gizlenen aktivite ekranda tekrar göründüğünde çağrılır.

Sorunuz, bir etkinliği yeniden başlatmak için hangi yöntemin kullanıldığını sorar. onCreate()etkinlik ilk oluşturulduğunda çağrılır. Uygulamada, çoğu etkinlik arka planda bir dizi çağrı onPause()ve onResume()çağrı yoluyla devam eder . Bir etkinlik, ancak onRestart()önce arayarak tamamen durdurulup onStop()sonra hayata döndürüldüğünde gerçekten "yeniden başlatılır" . Bu nedenle, aslında onStop()onunla aktiviteleri durdurmuyorsanız , büyük olasılıkla kullanacaksınız onResume().

Farklı yaşam tarzı yöntemleri arasındaki ilişkiyi daha iyi anlamak için yukarıdaki bağlantıdaki android belgesini okuyun. Hangi yaşam döngüsü yöntemini kullandığınıza bakılmaksızın, genel biçimi kullanmak aynıdır. Standart yöntemi geçersiz kılmalı ve kodunuzu, yani aktivitenin o noktada ne yapmasını istediğinizi yorum bölümüne eklemelisiniz.

@Override
public void onResume(){
 //will be executed onResume
}

Görünümdeki bir Öğeye tıkladığımızda onResume () çağrılır mı?
rajiv_

1
Bir öğeye tıklamak, mutlaka onResume'u çağırmaz. OnResume yöntemi, bu görünüm gizliyse ve geri yüklüyse veya tamamen oluşturulmadan önce ilk yüklemede çağrılır.
Rarw

show hatası super.onResume () ile çağrılmadı
sirmagid


2

KOTLIN

Yeniden başlatılan herhangi bir Activity, ilk olarak onResume () yöntemini çalıştırır.

Bu yöntemi kullanmak için şunu yapın:

override fun onResume() {
        super.onResume()
        // your code here
    }

1

Bir etkinlik başladıktan sonra, yeniden başlatılan (onRestart () onStart () öncesinde gerçekleşir) veya duraklatılır (onPause ()), onResume () çağrılır. Etkinlik onResume () durumunda olduğunda, etkinlik uygulama kullanıcısı tarafından kullanılmaya hazırdır.

Aktivite yaşam döngüsünü biraz inceledim ve işte bu konuyla ilgili anlayışım: Aktiviteyi (A) başka bir işlemin sonunda yeniden başlatmak isterseniz, birkaç farklı durum olabilir.

  1. Diğer etkinlik (B) duraklatıldı ve / veya durduruldu veya yok edildi ve muhtemelen A etkinliği duraklatıldı (onPause ()), bu durumda A etkinliği onResume () öğesini çağıracaktır.

  2. B etkinliği duraklatıldı ve / veya durduruldu ya da yok edildi, A etkinliği muhtemelen bellek olayından dolayı durduruldu (onStop ()), bu durumda A etkinliği önce onRestart (), onStart () saniye, sonra onResume çağıracak ()

  3. B etkinliği duraklatıldı ve / veya durduruldu veya yok edildi, etkinlik A yok edildi, programcı önce etkinliği başlatmak için onStart () öğesini manuel olarak, ardından onResume () öğesini çağırabilir çünkü bir etkinlik yok edilmiş durumda olduğunda etkinlik başlamadı ve bu, etkinlik tamamen kaldırılmadan önce gerçekleşir. Aktivite kaldırılırsa, aktivitenin yeniden oluşturulması gerekir. OnStart () 'ı manuel olarak çağırmak Sanırım bunun nedeni, eğer aktivite başlamamışsa ve yaratılmışsa, onCreate ()' den sonra onStart () çağrılacak.

Verileri güncellemek istiyorsanız, bir veri güncelleme işlevi yapın ve işlevi onResume () içine yerleştirin. Veya onResume () içine bir loadData işlevi koyun

Etkinlik yaşam döngüsü diyagramının yardımıyla yaşam döngüsünü anlamak daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.