【发布时间】:2012-03-17 16:30:10
【问题描述】:
我只是想知道是否可以在应用程序清单中注册一个检测屏幕开/关的广播接收器。 我不喜欢可编程方法的原因是它需要运行应用程序才能检测到这样的事情,而: “在广播 Intent 时,在清单中注册了广播接收器的应用程序不必运行”(来源:Professional Android 2 Application Development book)
我的应用程序实际上是一个锁屏应用程序,通过使用可编程方式需要一直运行:S
有办法解决吗?
我正在清单中尝试以下内容:
<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();
}
}
}
【问题讨论】:
-
你能给我一份工作样本吗?我想在屏幕锁定或解锁时做点什么。
标签: android screen broadcastreceiver