私はここでの問題を発見しようとしてきたが、私は...私のonReceiveが呼び出さしていないように見えることはできません、ここで私が持っているものです:いくつかのデバッグを動的に登録されたBroadcastReceiverインスタンスは起動していませんか?
public abstract class NoUpdatesTimer extends BroadcastReceiver {
private Context context;
private PendingIntent pendingIntent;
public NoUpdatesTimer(Context context) {
this.context = context;
Intent intent = new Intent(Constants.ALARM_NO_LOC_UPDATES);
pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
context.registerReceiver(this, new IntentFilter(Constants.ALARM_NO_LOC_UPDATES));
}
public void scheduleCheck(long delayMillis) {
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + delayMillis, pendingIntent);
}
@Override
public void onReceive(Context context, Intent intent) {
...
}
}
、私はscheduleCheckingが呼び出されたが、onReceiveメソッドが呼び出されていないことを確認しました。
adb shell am broadcast -a rsg.ms.7
(Constants.ALARM_NO_LOC_UPDATESが "rsg.ms.7" である):私も使用して、シェルからこのコードをトリガすることを試みました。
変更する必要があることを教えてください.Receiveが呼び出されますか?