2017-11-10 92 views
5

Bir alıcı oluşturmak için eski projemde WakefulBroadcastReceiver genişletilmiş. Ama şimdi deprecated. WakefulBroadcastReceiver yerine Receiver kullanmalıyım ve şimdi aşağıdaki kodu yeni yöntemle nasıl değiştireceğim?WakefulBroadcastReceiver kullanımdan kaldırıldı

public class TaskFinishReceiver extends WakefulBroadcastReceiver { 
    private PowerManager mPowerManager; 
    private PowerManager.WakeLock mWakeLock; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
     turnOnScreen(); 
     Intent wakeIntent = new Intent(); 

     wakeIntent.setClassName("com.packagename", "com.packagename.activity.TaskFinished"); 
     wakeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(wakeIntent); 
    } 


    public void turnOnScreen(){ 
     mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); 
     mWakeLock.acquire(); 
    } 
} 

cevap

2

WakefulBroadcastReceiverkullanımdan kaldırıldı API düzeyinde 26.1.0 yılında:

İşte benim kodudur.

Android O'dan itibaren, arka plan kontrol kısıtlamaları, bu sınıfı genel olarak daha faydalı hale getirmektedir. (Bir yayının alınmasından hizmetinin başlatılması genellikle güvenli değildir, çünkü uygulamanızın bu noktada ön planda olduğu ve bu nedenle ürününe izin vermediği garantisi yoktur.) Bunun yerine geliştiriciler android.app.job.JobScheduler - 'u bir iş planlayın ve bu, uygulamanın bunu yaparken bir kilidi uyandırmasını gerektirmez (sistem, iş için bir uyandırma kilidi tutmaya özen gösterecektir). Demo durum için

public class JobSchedulerService extends JobService { 

    @Override 
    public boolean onStartJob(JobParameters params) { 

     return false; 
    } 

    @Override 
    public boolean onStopJob(JobParameters params) { 

     return false; 
    } 

} 

,

+0

nasıl iş zamanlayıcı ile benim yukarıdaki kodu dönüştürmek için kontrol edin? – Yeahia2508

+0

@ Yeahia420 Buradaki iş planlayıcısı hakkında herhangi bir detay yanıtı verirseniz, başkaları için faydalı olacaksa, http://www.vogella.com/tutorials/AndroidTaskScheduling/article.html –

+0

makalesini okuyun. – Yeahia2508

İlgili konular