onReceiver of BroadcastReceiver not called, AlarmManager

alarmmanager, android

Solution

To fix it, I removed the inner class OnAlarmReceiver and fixed the androidmanifest.xml file.

    <receiver
        android:name="com.taxeeta.support.OnAlarmReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.NOTIFY" />
        </intent-filter>
    </receiver>

Problem

I am building a cab booking app, I need current location of the cab every 20 seconds. I have defined a AlarmManager and need it to repeat itself every 20 seconds. But its not repeating itself regularly. Instead it repeated itself after 233 seconds, and just once. What am I doing wrong here ? My HomeScreen has a inner class OnAlarmReceiver, in the onCreate of my HomeScreen I am calling 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); ``` Inner class 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)); } } ``` My AndroidManifest file has ``` <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> ``` Output of `adb shell dumpsys alarm` ``` com.taxeeta 51471ms running, 5248 wakeups 5248 alarms: flg=0x4 cmp=com.taxeeta/.HomeScreen$OnAlarmReceiver ``` Output of `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 ```

Original source