2016-03-21 16 views
1

Bu benim kodum.SCREEN_OFF BroadcastReceiver çalışmıyor

public class MyActivity extends Activity { 
    ... 
    @Override 
    protected void onStart() { 
     super.onStart(); 

     IntentFilter intentFilter = new IntentFilter(); 
     intentFilter.addAction("com.my.ACTION"); 
     intentFilter.addAction(Intent.ACTION_SCREEN_OFF); 

     registerReceiver(broadcastReceiver, intentFilter); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 

     unregisterReceiver(broadcastReceiver); 
    } 

    ... 

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 

      if ("com.my.ACTIOIN".equals(action)) { 
       updateMessageInformation(intent); 
       updateDialog(); 
      } else if (Intent.ACTION_SCREEN_OFF.equals(action)) { 
       finish(); 
      } 
     } 
    }; 
    ... 
} 

com.my.ACTION ekran kapattığınızda Intent.ACTION_SCREEN_OFF(android.intent.action.SCREEN_OFF) algılanmıyor, algılanır ve doğru

çalışma Fakat edilir.

Bu Activity, Service'dan başlar (diğer alıcıdan başlayarak).

Neyin yanlış bir şey olurdu?

+1

OnDestroy'da kaydını siliyor musunuz? Belki de etkinlik, niyet gönderilmeden önce yok edilir, böylece etkinlik tarafından alınamaz mı? – galex

+0

Alıcıyı onStop'ta kaydediyorum. –

+0

@galex Teşekkürler. Kayıt defterini onDestroy'a taşıma, doğru şekilde çalışıyor. –

cevap

İlgili konular