Tôi đang xây dựng một ứng dụng đặt phòng taxi, tôi cần vị trí hiện tại của cab mỗi 20 giây.onReceiver của BroadcastReceiver không được gọi là, AlarmManager
Tôi đã xác định một AlarmManager và cần nó để tự lặp lại sau mỗi 20 giây. Nhưng nó không lặp lại thường xuyên. Thay vào đó nó lặp lại chính nó sau 233 giây, và chỉ một lần. Tôi làm gì sai ở đây ?
màn hình của tôi có một lớp OnAlarmReceiver bên trong, trong onCreate của màn hình chính của tôi tôi kêu gọi 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);
lớp Inner trong màn hình chính
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));
}
}
tập tin AndroidManifest tôi có
<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>
Đầu ra của adb shell dumpsys alarm
com.taxeeta
51471ms running, 5248 wakeups
5248 alarms: flg=0x4 cmp=com.taxeeta/.HomeScreen$OnAlarmReceiver
Sản lượng 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
Không, không hoạt động. OnAlarmReceiver, onReceive cũng không được gọi. – Siddharth
Tương tự ở đây không có gì trên máy báo động hoạt động cho tôi. Tôi đã thử tất cả các gợi ý cho việc này. Không chắc chắn phải làm gì – JPM