ここで私は私のウィジェットのアラームを設定するために使用されるコードであるAlarmManager.RTCタイプがまだスリープモードで起動され使用してスケジュール:PendingIntentは
private static void setAlarm(Context context) {
Intent myIntent = new Intent(context, Widget.class);
myIntent.setAction(AUTO_UPDATE);
PendingIntent pendingIntent =
PendingIntent.getBroadcast(context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 8);
alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 8000,
pendingIntent);
}
をしかし、問題があることも、スリープモードでは、 onReceive()
はインテントによって引き続きトリガーされます。
setRepeating
の代わりにsetInexactRepeating
を使用した後、スリープモードではコール間の遅延が最大1分に増加しますが、それでもバッテリは消費されます。
あなたのご質問はありますか? – HitOdessit
'AlarmManager.RTC'は、デバイスをスリープモードで呼び出さないでください!呼び出すことを避けるために私は何をすべきですか? – SAbbasizadeh
あなたのコードをテストするAndroid OSのバージョンとデバイス/エミュレータは何ですか? – HitOdessit