Ich baue eine Taxi-Buchungs-App, ich brauche alle 20 Sekunden den aktuellen Standort der Kabine.onReceiver von BroadcastReceiver nicht angerufen, AlarmManager
Ich habe einen AlarmManager definiert und muss sich alle 20 Sekunden wiederholen. Aber es wiederholt sich nicht regelmäßig. Stattdessen wiederholte es sich nach 233 Sekunden und nur einmal. Was mache ich hier falsch?
My Homescreen hat eine innere Klasse OnAlarmReceiver im onCreate meiner Homescreen Ich rufe Alarmmanager
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(this, OnAlarmReceiver.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 20);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
cal.getTimeInMillis(), God.UPDATE_PENDING_INTERVAL, pi);
Innenklasse in Homescreen
public class OnAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// PullPendingRequests.acquireStaticLock(context);
Toast.makeText(context, "Don't panik but your time is up!!!!.", Toast.LENGTH_LONG)
.show();
Log.d("Taxeeta:PullPendingRequets", "CallService Location");
context.startService(new Intent(context, PullPendingRequests.class));
}
}
Meine AndroidManifest Datei hat
<service
android:name="com.taxeeta.support.PullPendingRequests"
android:enabled="true"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Light.NoTitleBar" />
<receiver android:name=".com.taxeeta.HomeScreen.OnAlarmReceiver" />
</application>
Ausgabe von adb shell dumpsys alarm
com.taxeeta
51471ms running, 5248 wakeups
5248 alarms: flg=0x4 cmp=com.taxeeta/.HomeScreen$OnAlarmReceiver
Ausgabe von adb shell dumpsys alarm | grep taxeeta
ELAPSED_WAKEUP #7: Alarm{409303b0 type 2 com.taxeeta}
operation=PendingIntent{408ba2d8: PendingIntentRecord{40887be8 com.taxeeta broadcastIntent}}
com.taxeeta
5248 alarms: flg=0x4 cmp=com.taxeeta/.HomeScreen$OnAlarmReceiver
Nein, funktioniert nicht. OnAlarmReceiver, onReceive wird auch nicht aufgerufen. – Siddharth
Auch hier funktioniert nichts auf Alarmmanager für mich. Ich habe alle Vorschläge dafür ausprobiert. Nicht sicher, was ich tun soll – JPM