Ancak, activity tamamen tıkalı ve görünmez olduğunda, durmaktadır.
Activity duraklatma(paused) durumuna girdiğinde, sistem duraklatıldığında devam etmemesi gereken (bir video gibi) action'ları durdurmak için veya kullanıcının uygulamadan çıkmaya devam etmesi için kalıcı olarak kaydetmesi gerektiği durumlarda activity'deki onPause() metodunu çağırır. Pause durumundan kullanıcı uygulamanıza geri döndüğünde sistem devam eder ve onResume() metodunu çağırır.
Not: Activity onPause() çağrısı aldığında, bir süreliğine activity'nin duracağını ve kullanıcının activity'ye tekrar döneceğini gösteren bir işaret olabilir. Ancak, bu ilk olarak kullanıcının uygulamanızı terk ettiğine dair bir işarettir.
Pause Your Activity - Activity'yi Duraklatma
Activity için sistem onPause() metodunu çağırdığında, bu teknik olarak activity'nin kısmen görünür olduğu anlamına gelir, fakat bu durum çoğunlukla kullanıcının uygulamayı terk ettiğinin ve activity'nin en yakın zamanda Stopped (Durmuş) durumuna geleceğinin işaretidir. Genellikle onPause() metodunu aşağıdakileri yapmak için kullanırsınız:
- CPU'yu kaynaklarını tüketebilecek animasyonlar veya diğer devam eden uygulamaları durdurmak için.
- Kaydedilmemiş değişiklikleri işlemek için, fakat bu değişiklikler sadece kullanıcının uygulamayı terk ettiği zaman kaydedilmiş olmasını umduğu değişiklikler olmalı.(bir eposta taslağı gibi)
- GPS, yayın alıcılar gibi şarj süresini etkileyebilecek kullanıcının ihtiyaç duymayacağı sistem kaynaklarını serbest bırakmak için.
Örneğin uygulamanız kamera kullanıyorsa, onPause() metodu kamerayı serbest bırakmak için iyi bir yerdir.
@Override public void onPause() { super.onPause(); // Always call the superclass method first // Release the Camera because we don't need it when paused // and other activities might need to use it. if (mCamera != null) { mCamera.release() mCamera = null; } }
Genelde, değişiklikleri kalıcı bir hafızaya kaydetmek için onPause() metodunu kullanmamalısınız. (Bir forma girilen kişisel bilgiler gibi) . Sadece kullanıcının otomatik kaydedilmesini umduğu emin olduğunuz değişiklikleri onPause() metodu içinde tutmalısınız. (eposta taslakları gibi). Ancak, onPause() durumunda bir veri tabanına kayıt yapmak gibi CPU yoğun işleri yapmaktan kaçınmanız gerekmektedir çünkü bu durum diğer activity'ye olan geçişi oldukça yavaşlatır. (böyle ağır yük içeren durumlar onStop() metodunda olmalıdır.)
Not: Activity duraklatıldığında (Pause durumunda), Activity instansı (örneği) bellekte yerleşiktir ve activity devam ettirildiğinde geri çağrılır. Devam (Resume) durumuna kadar olan callback metodlarının çağrılması esnasında oluşturulan bileşenleri tekrar oluşturmaya ihtiyaç gerek olmaz.
Not: Activity duraklatıldığında (Pause durumunda), Activity instansı (örneği) bellekte yerleşiktir ve activity devam ettirildiğinde geri çağrılır. Devam (Resume) durumuna kadar olan callback metodlarının çağrılması esnasında oluşturulan bileşenleri tekrar oluşturmaya ihtiyaç gerek olmaz.
Resume Your Activity - Activity'yi Devam Ettirme
Kullanıcı Pause durumundaki bir activity'yi tekrar Resume (devam) konumuna getirdiğinde, sistem onResume() metodunu çağırır. Bu metodun ilk kez yaratılma durumu da dahil olmak üzere activity'nin her öne geldiğinde çağrıldığını unutmayın. Bu nedenle, onPause() sırasında bıraktığınız bileşenleri başlatmak için onResume() metodunu implement etmelisiniz ve activity'nin her Resume durumunda meydana gelmesi gereken diğer başlangıçları da yapmalısınız.
Aşağıda verilen onResume() örneği daha önce yukarıda verdiğimiz onPause() örneğinin karşılığıdır. Bu yüzden activity duraklatıldığında bırakılan kamerayı tekrar başlatır.
@Override public void onResume() { super.onResume(); // Always call the superclass method first // Get the Camera instance as the activity achieves full user focus if (mCamera == null) { initializeCamera(); // Local method to handle camera init } }
Hiç yorum yok:
Yorum Gönder