【发布时间】:2013-05-29 21:40:08
【问题描述】:
我需要在应用启动后一直保持广播接收器运行。
这是在应用程序中注册此接收器的代码
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenEventsReceiver();
registerReceiver(mReceiver, filter);
接收者的代码
public class ScreenEventsReceiver extends BroadcastReceiver {
public static boolean wasScreenOn = true;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
wasScreenOn = false;
Log.d("ScreenEventReceiver", "ON");
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
wasScreenOn = true;
Log.d("ScreenEventReceiver", "ON");
}
}
}
【问题讨论】:
-
您可能想创建一个service
-
但是接收事件呢?
-
您真的需要监控屏幕开/关事件吗?他们强迫您注册不在清单中的接收器的原因是他们不希望人们总是监视这些事件并减慢设备速度。
标签: java android broadcastreceiver