有没有办法检测代码中的Android手机是否处于睡眠模式(屏幕为黑色)? 我写了一个主屏幕小部件。我不希望在屏幕为黑色时更新小部件以节省电池消耗。
感谢。
答案 0 :(得分:3)
您可以使用AlarmManager触发窗口小部件的刷新。在安排下一个周期时,您可以定义是否唤醒您的设备(也就是执行实际任务)。
alarmManager.set(wakeUpType, triggerAtTime, pendingIntent);
答案 1 :(得分:1)
你可以使用带有动作过滤器的广播接收器android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF
小例子:
你的接收者:
public class ScreenOnOffReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
{
// some code
}
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
{
// some code
}
}
}
你的清单:
<receiver android:name=".ScreenOnOffReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.SCREEN_OFF" />
</intent-filter>
</receiver>