Birisi tam olarak BroadcastReceiver
ve WakefulBroadcastReceiver
arasındaki fark nedir açıklayabilir misiniz?BroadcastReceiver Vs WakefulBroadcastReceiver
Her bir Receiver sınıfını hangi durumlarda kullanmak zorundayız?
Birisi tam olarak BroadcastReceiver
ve WakefulBroadcastReceiver
arasındaki fark nedir açıklayabilir misiniz?BroadcastReceiver Vs WakefulBroadcastReceiver
Her bir Receiver sınıfını hangi durumlarda kullanmak zorundayız?
BroadcastReceiver
ve WakefulBroadcastReceiver
arasında yalnızca bir fark vardır.
Eğer onReceive()
yönteminin içine yayını alan
,
BroadcastReceiver:
:
completeWakefulIntent
ateş kadar CPU uyanık kalacak olduğu garanti edilir.Örnek: yayını aldığınızda
İşte, sen, bir hizmeti başlıyor sen WakefulBroadcastReceiver
kullandığınız olarak, bu wakelock
yapacak ve hizmete iç işi bitene kadar CPU uyku izin vermez ve yangın completeWakefulIntent
Kodu:
public class SimpleWakefulReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// This is the Intent to deliver to our service.
Intent service = new Intent(context, SimpleWakefulService.class);
// Start the service, keeping the device awake while it is launching.
Log.i("SimpleWakefulReceiver", "Starting service @ " + SystemClock.elapsedRealtime());
startWakefulService(context, service);
}
}
class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) {
// At this point SimpleWakefulReceiver is still holding a wake lock
// for us. We can do whatever we need to here and then tell it that
// it can release the wakelock. This sample just does some slow work,
// but more complicated implementations could take their own wake
// lock here before releasing the receiver's.
//
// Note that when using this approach you should be aware that if your
// service gets killed and restarted while in the middle of such work
// (so the Intent gets re-delivered to perform the work again), it will
// at that point no longer be holding a wake lock since we are depending
// on SimpleWakefulReceiver to that for us. If this is a concern, you can
// acquire a separate wake lock here.
for (int i=0; i<5; i++) {
Log.i("SimpleWakefulReceiver", "Running service " + (i+1)
+ "/5 @ " + SystemClock.elapsedRealtime());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
}
Log.i("SimpleWakefulReceiver", "Completed service @ " + SystemClock.elapsedRealtime());
SimpleWakefulReceiver.completeWakefulIntent(intent);
}
}
Merhaba. "CPU uyumaya devam edersiniz" ifadesiyle neyi kastediyorsunuz, bir örnek verebilirseniz yararlı olacaktır. Teşekkürler. –
@TheHunter: cep telefonu CPU'daki tüm işlemleri (Merkezi İşlem Birimi) çalıştırır. Bilgisayarlar Intel i3, i5 vb gibi CPU'lara sahiptir ve cep telefonları da CPU gibi snapdragon'a sahiptir. Enerji tasarrufu sağlamak için, cep telefonu ideal hale geldiğinde, kullanıcı etkileşmiyor, ekran ışıkları kapanıyor ve CPU, işleri işlemek yerine ideal (uyku) modda gidebilir. –
@MehulJoisar, bir hizmet başlattığımızda her zaman bir uyandırma alıyoruz? Çünkü bu durumda da uyuyabilir mi? Neden sadece BroadcastReceivers durumunda? – Diffy
belgeleri okuyun! WAKE_LOCKs – Selvin
hakkında her şeye şüphemden aşağı oylama nedenini biliyor olabilirsiniz. – user2107111
Yanıt (sorunuz için, downvote değil) okunmuştur .. [BroadcastReceiver] (http://developer.android.com/reference/android/content/BroadcastReceiver.html) 'i okuyunuz. Daha sonra okuyun [WakefulBroadcastReceiver] (https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html), [kesinlikle wakefulbroadcast'e ihtiyacınız var ...] (http://porcupineprogrammer.blogspot.in/2014/02 /when-do-you-absolutely-need.html) yardımcı olur. Else ... bu soru için yer değil, lütfen okuyun: [Hangi konular hakkında sorabilirim] (http://stackoverflow.com/help/on-topic) – user2450263