2016-09-28 20 views
0

В нашем приложении безопасности firebase мы используем Android AlarmManger, чтобы поддерживать наш слушатель firebase.Java/Android - аккумуляторная батарея AlarmManager Consumer?

AlarmManager планируется через BroadcastReceiver, когда устройство загрузится аварийный сигнал пробуждения ЦП каждые 5 секунд и проверить, если firebase слушатель готов еще запустить его.

Использование рисунка мы заметили влияние на время автономной работы Не могли бы вы посоветовать лучший образец?

public class Alarm extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, ""); 
     wl.acquire(); 
     Firebase.setAndroidContext(context); 
     FirebaseUtils.startListeners(context); 

     wl.release(); 
    } 

    public void SetAlarm(Context context) 
    { 
     AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
     Intent i = new Intent(context, Alarm.class); 
     PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); 
     am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pi); // Millisec * Second * Minute 
    } 
} 
+0

Аварийный ящик, когда процессор находится в спящем режиме, поэтому он потребляет аккумулятор. –

+0

Увеличьте повторяющийся интервал. – Nishith

+0

@Bansal благодарит за ваш повтор, в случае, если у вас есть идеи, как приложение вроде viber, skyp work ... – Tanite

ответ

0

Вы можете попробовать увеличить повторяющийся интервал, если вы действительно не нужно повторять при каждом 5 seconds.App эфира каждых 5 секунд таким же, как играть с приложением constantly.Try, что делает его 30 или 50 секунд.

+0

После увеличения интервала повторения до 50 секунд результат лучше, но не принят, никаких других идей? пожалуйста посоветуй – Tanite