Java 悬挂式和警报管理器

Java 悬挂式和警报管理器,java,android,android-intent,android-alarms,Java,Android,Android Intent,Android Alarms,我尝试在20秒后广播,并使用扩展接收器接收广播ExtendedReceiver 这是我的函数,它创建一个警报,并将pendingent设置为在20秒后熄灭: public void alert() { GregorianCalendar cal = new GregorianCalendar(); cal.add(Calendar.SECOND, 20); Intent i = new Intent(this, ExtendedReceiver.class);

我尝试在20秒后广播,并使用扩展接收器接收广播
ExtendedReceiver

这是我的函数,它创建一个警报,并将
pendingent
设置为在20秒后熄灭:

public void alert() {
    GregorianCalendar cal = new GregorianCalendar();
    cal.add(Calendar.SECOND, 20);

    Intent i = new Intent(this, ExtendedReceiver.class);
    int _uid = (int) System.currentTimeMillis();
    PendingIntent pi = PendingIntent.getBroadcast(this, _uid, i, PendingIntent.FLAG_ONE_SHOT);

    AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);

    Log.i("Title", "Alarm has been set");
}
以下是ExtendedReceiver类:

public class ExtendedReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("Title", "Broadcast received");
    }
}

我收到第一条日志消息:
报警已设置
,但我没有收到第二条日志消息。我不确定问题出在哪里(Android上的第一天)

如果可以的话,这是我一直在做的事情

换衣服

PendingIntent pi = PendingIntent.getBroadcast(this, _uid, i, PendingIntent.FLAG_ONE_SHOT);

重要提示:按如下方式注册您的
ExtendedReceiver

...
registerReceiver(new ExtendedReceiver() , new IntentFilter(EXTENDED_RECEIVER_ACTION));
PS:EXTENDED_RECEIVER_操作是一个字符串,不要忘记注销你的接收器

进一步文件


希望有帮助:)

您是否在Manifest.xml文件中注册了ExtendedReceiver?
...
registerReceiver(new ExtendedReceiver() , new IntentFilter(EXTENDED_RECEIVER_ACTION));