【发布时间】:2014-10-30 10:54:44
【问题描述】:
我想更改我的活动的 KeepScreenOn 值,因此我想在活动中使用广播接收器。我在 onCreate 中注册接收器:
registerReceiver(receiver, new IntentFilter("ACTION_POWER_CONNECTED"));
registerReceiver(receiver, new IntentFilter("ACTION_POWER_DISCONNECTED"));
并在 onPause 中取消注册:
unregisterReceiver(receiver);
接收器如下所示:
private BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_POWER_CONNECTED)) {
findViewById(R.id.fullscreen_content).setKeepScreenOn(true);
} else if (action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
media=MediaPlayer.create(context,R.raw.battery);
media.start();
findViewById(R.id.fullscreen_content).setKeepScreenOn(false);
}
}
};
没有错误,断开/连接到电源时它根本不会改变任何东西。有什么建议吗?
【问题讨论】:
-
“但它根本不起作用”,那么发生了什么?任何错误/异常?
-
没有错误,断开/连接到电源时它根本不会改变任何东西。
-
您是否尝试过调试检查它是否正在执行接收器块?
-
如果还没有添加,也要添加manifest权限