我正在尝试在Android中使用BroadcastReceiver(使用清单)并且只是一个简单的问题。
到目前为止,我有这个......
<receiver android:name=".Listener"
android:label="testRecv"
android:enabled="true"
android:exported="true"
android:process=":recovery">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
</receiver>
但是当我在测试设备或模拟器上安装apk时,没有任何事情发生在我打开我的屏幕上。以下是Listener类的代码......
public class Listener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.SCREEN_ON")) {
Toast t = Toast.makeText(context, "hey", 10);
t.show();
}
}
}
我从来没有看到吐司被解雇(作为测试)。
我有什么遗失的吗?我从未使用过Context.registerReceiver(),因为我在清单中声明了,所以我虽然不需要。
关于这整件事最令人困惑的部分是文件对它没有帮助。任何人都可以帮我理解这些东西吗?
答案 0 :(得分:1)
请参阅Android - how to receive broadcast intents ACTION_SCREEN_ON/OFF?
中CommonsWare的回复答案 1 :(得分:0)
if (intent.getAction().equals("android.intent.action.SCREEN_ON")) {
Toast t = Toast.makeText(context, "hey", 10);
t.show();
}
您不需要if语句