我试图捕捉当手机处于深度睡眠模式时的音量增加/减少事件。我读了几篇文章和这里我做了什么。
在Activitiesoncreate
方法中,我设置了一个wakelock
PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();
我读到,即使我的屏幕被锁定,如果我设置了这个,我的应用程序将响应事件。另外,我已经添加了Android清单的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />
然后在oncreate
方法中声明广播接收器
VolReceiver volumeBroadcastReceiver = new VolReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(volumeBroadcastReceiver, filter);
当应用程序处于前台或后台时,这一切都工作得很好,但然后我通过按电源按钮锁定手机屏幕,应用程序停止接收广播事件,我认为PowerManager
必须解决这个问题,但它没有。所以请帮帮我,提供一些信息。
我试图捕捉当手机处于深度睡眠模式时的音量增加/减少事件。
根据定义,这是不可能的。
在创建方法的活动中,我设置了一个WakeLock
然后我通过按下电源按钮应用程序停止接收广播事件来锁定手机屏幕
这里有几种可能性。一个是您的进程被终止,因为它不再需要。一旦您不再有任何前台活动,您的进程就有资格被终止,以便为其他应用程序释放内存,这可能在任何时候发生。另一种可能是,当屏幕关闭时,Android根本不发送广播。
在关于克里特岛方法的主要活动中,我补充说: 恳求我能给我一些帮助,想。
地址 address_id INT PK AutoIncr 城市Varchar 国家varchar 员工 null
我是Java编程的初学者 物体一次只能移动一个正方形,如果用户想移动到另一个正方形,他们必须再次按键。我的移动方法如下: 我正在使用KeyListener接口来实现keyPressed、keyTyped和KeyRelease方法,我有下面的片段中的条件,在keyPressed内部 这允许对象自由移动。但是,只要按下向上箭头,它显然会继续移动。 有没有办法让物体向上移动一次,比如说-5,然后即使按键
我有一个状态机,有三种可能的状态:状态1,状态2,状态3。 每当一个对象进入状态_3时,我想触发一个事件event1。 在我state_machine,我有 但只要状态从state1更改为state3或从state2更改为state3,就会正确触发事件。但当状态从state3转换到state3时,不会触发event1。我怎样才能做到这一点? 我知道从3号州到3号州不是一个州的过渡。我可以使用类似于