首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓省电模式监听器?

安卓省电模式监听器?
EN

Stack Overflow用户
提问于 2010-11-10 06:04:19
回答 3查看 6.3K关注 0票数 9

在进入省电模式之前,如何创建一个Android监听器来执行任务?另外:此任务可以控制哪些低功耗选项?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-10 04:21:19

上面的答案(对于API 21和更高版本)并不完全正确。您应该在您的活动或服务中注册一个接收者,如下所示:

代码语言:javascript
复制
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()的状态改变时广播的意图。此广播仅发送给已注册的接收者。

我已经测试过了,它是有效的。

票数 19
EN

Stack Overflow用户

发布于 2015-05-25 14:20:56

由于棒棒糖(API21)存在PowerManager#ACTION_POWER_SAVE_MODE_CHANGED广播意图。

所以你只需要接收它:

AndroidManifest.xml:

代码语言:javascript
复制
<receiver android:name=".observers.PowerSaveModeReceiver">
    <intent-filter>
        <action android:name="android.os.action.POWER_SAVE_MODE_CHANGED"/> 
    </intent-filter>
</receiver>

PowerSaveModeReceiver.java:

代码语言:javascript
复制
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
        }
    }
}
票数 7
EN

Stack Overflow用户

发布于 2010-11-10 06:58:43

如何在进入省电模式之前创建一个Android监听器来执行任务?

没有用于此的广播Intent。最接近的是ACTION_SCREEN_OFF。在您收到此广播后,设备可能会在不久的将来进入睡眠状态。而且,您只能在活动或服务或其他Context中使用通过registerReceiver()注册的BroadcastReceiver来收听此广播。

还有:这个任务可以控制的低功耗选项有哪些?

我不知道这是什么意思,抱歉。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4139149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档