Android 挂起意图上的广播接收器不工作

Android 挂起意图上的广播接收器不工作,android,broadcastreceiver,Android,Broadcastreceiver,正在尝试在特定时间发送和接收广播。 注册广播的A类RegisterBroadcast方法: cal = Calendar.getInstance(); int lap = 1000 * 60 * 10; cal.setTimeInMillis(System.currentTimeMillis()); cal.set(Calendar.HOUR, 5); cal.set(Calendar.MINUTE, 01); AlarmManager am = (AlarmManager) getSystem

正在尝试在特定时间发送和接收广播。 注册广播的A类RegisterBroadcast方法:

cal = Calendar.getInstance();
int lap = 1000 * 60 * 10;
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR, 5);
cal.set(Calendar.MINUTE, 01);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), lap, pi);
Intent i = new Intent(getApplicationContext(), MyAlarm.class);
pi = PendingIntent.getBroadcast(getApplicationContext(), 0, i, 0);
接收人:

@Override
public void onReceive(Context cont, Intent i) {
    Toast.makeText(cont, "I am broadcasting", Toast.LENGTH_LONG).show();
}
舱单:

<receiver android:name="com.anarkali.MyAlarm">


但该代码无法正常广播。有时它做有时它不做为什么?我很困惑。

您似乎在初始化它之前使用了
pendingent
pi
,在这种情况下,它将使用当时分配给
pi
的任何值,这可能是旧的
pendingent
或可能是
null

am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),lap,pi);
Intent i = new Intent(getApplicationContext(),MyAlarm.class);
pi=PendingIntent.getBroadcast(getApplicationContext(), 0,i,0);
应该是:

Intent i = new Intent(getApplicationContext(),MyAlarm.class);
pi=PendingIntent.getBroadcast(getApplicationContext(), 0,i,0);
am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),lap,pi);

好吧,这肯定是你发布的代码中的一个问题。如果它仍然不起作用,那么还有更多,但是您可能需要显示更多的代码,记录正在发生的事情的证据。此外,您的清单中似乎有输入错误,请查看上面@Adeel的评论。如果这个输入错误不仅存在于问题中,而且存在于实际清单中,我想知道你是如何运行这个应用程序的。