Как определить, находится ли телефон в спящем режиме по коду? - PullRequest
6 голосов
/ 02 марта 2010

Есть ли способ определить, находится ли телефон с Android в спящем режиме (экран черный) в коде? Я написал виджет домашнего экрана. Я не хочу, чтобы виджет обновлялся, когда экран черный для экономии заряда батареи.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 02 марта 2010

Вы можете использовать AlarmManager для запуска обновлений вашего виджета. При планировании вашего следующего цикла вы можете определить, следует ли включать ваше устройство (иначе говоря, выполнять реальную задачу).

alarmManager.set(wakeUpType, triggerAtTime, pendingIntent);
1 голос
/ 21 марта 2012

Вы можете использовать широковещательный приемник с фильтрами действий 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...