Android 为什么警报广播接收器不接收广播?

Android 为什么警报广播接收器不接收广播?,android,android-service,alarmmanager,Android,Android Service,Alarmmanager,我正试图在广播接收器的帮助下以特定的间隔启动服务。我已将接收者定义为服务本身的内部类,如下所示: public class AlarmReciever extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("RTESPLDebug", "Recieved Broadcast!"); //Never appears in

我正试图在
广播接收器
的帮助下以特定的间隔启动服务。我已将接收者定义为服务本身的内部类,如下所示:

public class AlarmReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("RTESPLDebug", "Recieved Broadcast!"); //Never appears in LogCat
        //Intent i = new Intent(context, LocationUpdateService.class);
        context.startService(intent);
    }
};
我将报警接收器注册到服务的
onCreate()

我首先从我的第一个活动启动服务,然后在那里注册一个警报:

Intent i = new Intent(context, LocationUpdateService.class);
context.startService(i);

// Schedule first alarm
int nextUpdateInterval = 30*1000; // Let first alarm be after 30 sec
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(context, LocationUpdateService.class);
intent.setAction(Intent.ACTION_DEFAULT);
intent.addCategory(Intent.CATEGORY_DEFAULT);
PendingIntent pintent = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis()+nextUpdateInterval, pintent);
在服务中,我注册一个位置更新,当我收到更新(我确实收到)时,我处理它(我已经调试了这个,处理确实完成了,没有错误),然后我以与上面类似的方式注册下一个报警:

int nextUpdateInterval = getNextUpdateInterval(); // Returns 30000
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(context, LocationUpdateService.class);
intent.setAction(Intent.ACTION_DEFAULT);
intent.addCategory(Intent.CATEGORY_DEFAULT);
PendingIntent pintent = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis()+nextUpdateInterval, pintent);

大量代码和冗长的问题。

更改此行PendingEvent pintent=PendingEvent.getBroadcast(上下文,RQS_1,intent,0);看看会发生什么。谢谢,让我试试this@Vinoth-油井RQS_1未定义,文档中说明此字段当前未使用。通过此链接,GO可能对您有帮助[link]链接没有帮助。我已经看过了。
int nextUpdateInterval = getNextUpdateInterval(); // Returns 30000
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(context, LocationUpdateService.class);
intent.setAction(Intent.ACTION_DEFAULT);
intent.addCategory(Intent.CATEGORY_DEFAULT);
PendingIntent pintent = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis()+nextUpdateInterval, pintent);