我需要你的帮助!当我在 Intent 中添加额外内容,然后使用该 Intent 创建一个 Pending Intent 时,它不起作用!我没有进入 BroadCastReceiver 类。
public class Recordatori_Visita extends Activity {
public void setAlarm(Calendar targetCal) {
Intent intent = new Intent (Recordatori_Visita.this, Receiver.class);
Long targetCal2 = targetCal.getTimeInMillis();
intent.putExtra("targetCal",targetCal2);
intent.putExtra("n",n);
PendingIntent pendingIntent = PendingIntent.getBroadcast(Recordatori_Visita.this, 1, intent, intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),pendingIntent);
}
}
.
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context k1, Intent k2) {
// TODO Auto-generated method stub
Bundle bolsaR = k2.getExtras();
Long extras = bolsaR.getLong("targetCalKey");
int n= bolsaR.getInt("n");
NotificationManager notificationManager = (NotificationManager) k1.getSystemService(Context.NOTIFICATION_SERVICE);
...
notificationManager.notify(1,myNotification);
}
}
我把代码删了,所有用到的变量都创建了,我找不到解决办法。如果我不在 Intent 中放置额外的数据,它可以正常工作,但是当我 putExtra 时,它不起作用,因为没有通知。谢谢!!
最佳答案
尝试将系统时间作为 requestCode
放入 getBroadcast()
函数中。
int requestID = (int) System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getBroadcast(Recordatori_Visita.this, requestID, intent, intent.FILL_IN_DATA);
关于android - 如何使用 PendingIntent 在 BroadCastReceiver 类上发送额外内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19856850/