我已经实现了与Android notification of screen off/on类似的功能,但是它没有按预期的方式工作。我只想在屏幕关闭时停止音乐。我创建了一个像这样的屏幕操作类public class ScreenAction extends BroadcastReceiver {
public static boolean wasScreenOn = true;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// AND DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = true;
}
}
}
然后,在我创建的主要活动中,我有这个IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenAction();
registerReceiver(mReceiver, filter);
在暂停的主要活动中,我有类似这样的内容:public void onPause() {
super.onPause();
if (ScreenAction.wasScreenOn) {
final MediaPlayer mp = MediaPlayer.create(this, R.raw.pcmouseclick1);
mp.setVolume(.1f, .1f);
mp.start();
if (buttonState) {
mServ.reduceVolume();
}
}
}
我从一个在线资源中找到了这个,但是我遇到了问题。似乎屏幕状态始终设置为true,但我不确定如何更改此状态。
[我如何利用此ScreenAction类在用户锁定屏幕后仅在暂停状态下关闭音乐?我觉得我在onPause中缺少了一些东西,因为在onCreate中,我链接到该类。