在进入省电模式之前,如何创建Android侦听器来执行任务?另外:这项任务可以控制哪些低功率选项?Android省电模式侦听器?
回答
上面的答案(API为21及以上)是不完全正确。要注册您的活动或服务的接收器是这样的:
BroadcastReceiver powerSaverChangeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
checkPowerSaverMode();
}
};
IntentFilter filter = new IntentFilter();
filter.addAction("android.os.action.POWER_SAVE_MODE_CHANGED");
registerReceiver(powerSaverChangeReceiver, filter);
这样做的原因是,在清单的接收器不受这个广播触发。
ACTION_POWER_SAVE_MODE_CHANGED
意图被广播时isPowerSaveMode的状态()的变化。这个广播只发送给已注册的接收者。
我测试了这个,它的工作原理。
在进入省电模式之前,如何创建一个Android侦听器来执行任务?
这里没有广播Intent
。最靠近的是ACTION_SCREEN_OFF
。收到此广播后,该设备很可能会在不久的将来入睡。而且,您只能使用BroadcastReceiver
通过registerReceiver()
注册此活动或服务或其他Context
来收听此广播。
此外:什么是可以由这项任务控制的一些低功率选项?
我不知道这是什么意思,对不起。
屏幕关闭是省电功能的一部分,您可以在设置>应用程序>开发中将其禁用。其他省电功能可以通过应用程序控制关闭microSD卡接口等功能吗? – jacknad 2010-11-10 12:11:48
@JackN:我不清楚你认为“关闭microSD卡接口”是。请参阅'android.provider.Settings.System'来了解您可以控制的事情。除了这个清单之外,没有什么能量相关的,我可以按照你似乎感兴趣的方向想想。 – CommonsWare 2010-11-10 13:21:17
由于棒棒糖(API 21)有PowerManager#ACTION_POWER_SAVE_MODE_CHANGED广播意图。
所以你只需要接受它:
的AndroidManifest.xml:
<receiver android:name=".observers.PowerSaveModeReceiver">
<intent-filter>
<action android:name="android.os.action.POWER_SAVE_MODE_CHANGED"/>
</intent-filter>
</receiver>
PowerSaveModeReceiver.java:
public class PowerSaveModeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if (BuildConfig.DEV_LOGS)
Log.d(this.getClass().getName(), String.format("onReceive(context = [%s], intent = [%s])", context, intent));
final PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (pm.isPowerSaveMode()) {
// do something
} else {
// do some else
}
}
}
它适合你吗?它写在文档“这个广播只发送给注册的接收者。” ... – 2017-08-30 11:52:36
- 1. Android省电模式监听器
- 2. Android - GPS侦听器
- 3. MMS侦听器为Android?
- 4. Android:位置侦听器
- 5. 错误的锁定模式的Android侦听器
- 6. F#电子邮件侦听器
- 7. 触摸侦听器侦听边距
- 8. 如何省电模式
- 9. Android展开式视图组展开式侦听器
- 10. 进度条在电池省电模式(Android 5.x)中消失?
- 11. Spring JMS侦听器容器侦听器安装程序超时
- 12. 任何方式来创建“状态”侦听器而不是“事件”侦听器?
- 13. Infinispan CacheEntryExpired侦听器
- 14. 事件侦听器
- 15. Android位置侦听器经常拨打
- 16. Android:用于ActionMode的CheckBox OnChecked侦听器
- 17. Android - 如何侦听器系统事件?
- 18. Android:如何实现pushnotification侦听器?
- 19. Android:跨类开始侦听器
- 20. Android:定时后启动侦听器
- 21. Android鼠标光标侦听器,如OnTouchListener
- 22. Android:错误的侦听器行为?
- 23. 在画布上的Android侦听器?
- 24. Android中的多个侦听器
- 25. Android中实现侦听器的片段
- 26. Android,XML中的复选框侦听器?
- 27. Android中的侦听器服务
- 28. AdMob for Android:侦听器点击事件
- 29. Android:如何设置Acivity.onNewIntent()的侦听器?
- 30. 在Android中停止位置侦听器
有没有办法简单地检查设备是否处于省电模式? – jmrodrigg 2017-01-20 10:34:28
@jmrodrigg你可以使用 '''PowerManager pm =(PowerManager)context.getSystemService(Context.POWER_SERVICE); boolean powerSave == m.isPowerSaveMode(); ''' – nattster 2017-01-24 15:22:59
@nattster谢谢! – jmrodrigg 2017-02-02 09:41:53