我想知道是否可以在应用程序清单中注册一个检测屏幕开/关的广播接收器。我不喜欢可编程方法的原因是,它需要应用程序运行才能检测到这样的事情,而:“在清单中注册了广播接收器的应用程序在意图广播时不必运行,接收器就可以执行”(来源: Professional Android 2 Application Development一书)
我的应用程序实际上是一个锁屏应用程序,通过使用可编程的方式,它需要一直运行:
有没有办法绕过它?
我正在尝试清单中的以下内容:
<receiver android:name=".MyBroadCastReciever">
<intent-filter>
<action android:name="android.intent.action.SCREEN_OFF"/>
<action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
</receiver>
和简单的MyBroadCastReciever类:
public class MyBroadCastReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
Log.i("Check","Screen went OFF");
Toast.makeText(context, "screen OFF",Toast.LENGTH_LONG).show();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Log.i("Check","Screen went ON");
Toast.makeText(context, "screen ON",Toast.LENGTH_LONG).show();
}
}
}
https://stackoverflow.com/questions/9477922
复制相似问题