2016-09-28 17 views
0

firebaseセキュリティアプリケーションでは、Android AlarmMangerを使用して、リスナーをfirebaseのままにします。デバイスはCPUに各5秒 アラームウェイクアップ起動とfirebaseリスナーがそれを開始し、他の準備ができているかどうかを確認するときBroadcastReceiverを経由して、スケジュールJava/Android - AlarmManagerバッテリーコンシューマー?

AlarmManager

パターンを使用すると、バッテリ寿命に影響があることがわかりました アドバイスをお願いします。

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

モバイルがスリープモードになっていても、アラームマネージャーはCPUを覚醒させる理由はバッテリーを消費します。 –

+0

繰り返し間隔を長くします。 – Nishith

+0

あなたのリプレイのための@Bansalのおかげです。あなたはviber、skypの仕事のようなアプリがどういう考えを持っていますか? – Tanite

答えて

0

は、あなたが本当に30または50秒を作るアプリのconstantly.Tryで遊んでように同じである5秒毎にすべての5 seconds.App放送で繰り返す必要がいけない場合、あなたの繰り返し間隔を大きくしてみてくださいすることができます。

+0

リピート間隔を50秒に増やした後、結果は良いですが受け入れられません。ご意見をお聞かせください – Tanite