Hallo Ich benutze Alarm Manager für spezifische Zeitintervalle für 3 Minuten und ich begann mit der Überwachung. Es funktionierte für manchmal und plötzlich bemerkte ich, dass es unregelmäßige Zeitintervalle gibt, die nicht korrekt sind! Sie können in beigefügten Protokoll sehen, wo bei "20-Jul-2016 12:22:03 pm" Zeit variiert! Ich habe das Telefon angeschlossen und den Bildschirm ausgeschaltet und überwacht! wo ich alle 3 Minuten den Server treffe und die Antwort als 1 erhalte. Aber auf einmal dauert es 5 Minuten, um den Server zu treffen! Warum ist dieses seltsame Problem passiert?Alarm Manager funktioniert nicht in einem bestimmten Zeitintervall
Hier ist Code.
public void startAt3() {
Intent alarmIntent = new Intent(ActivityTracking.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(ActivityTracking.this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
/* Set the alarm */
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
/* Repeating on every 3 minute interval */
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
180000L, pendingIntent);
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Log.e("alarm",mydate);
}
AlarmReceiver:
public class AlarmReceiver extends WakefulBroadcastReceiver {//AlarmReceiver class
@Override
public void onReceive(Context context, Intent intent) {//onReceive method
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Log.e("alarm",mydate);
Intent service = new Intent(context, SimpleWakefulService.class);//intent to call another class
// Start the service, keeping the device awake while it is launching.
startWakefulService(context, service);//service started
}
SimpleWakefulService:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");//instantiates simpleWakefulService
}
@Override
protected void onHandleIntent(Intent intent) {
Log.e("simpleWakeful","simpleWakeful");
serviceCall(this); //here is downloadTaskMethod called and getting response as 1.
}
danke für Ihre Antwort. Ich habe einen Zweifel vom Blog. in onReceive-Methode, was ist WrappedAlarmManager? Was muss ich in meinem Code verwenden? – Shadow
auch interval_seven Sekunden haben Sie richtig erwähnt. Was soll ich geben? – Shadow
Der Code ist auf meinem Github-Konto hier verfügbar: https://github.com/hoombar/android-training/tree/master/src/net/rdyonline/android_training/alarms –