【问题标题】:How to send extras on BroadCastReceiver class using PendingIntent?如何使用 PendingIntent 在 BroadCastReceiver 类上发送额外内容?
【发布时间】:2013-11-08 10:32:01
【问题描述】:

我需要你的帮助!当我在 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);

   }
}

我已经把代码删了,所有用到的变量都创建好了,我找不到解决办法。如果我没有在意图中放入额外的数据,它可以正常工作,但是当我 putExtra 时它不起作用,因为没有通知。谢谢!!

【问题讨论】:

  • 可能不是您的问题的答案,但调用 intent.FILL_IN_DATA 时的参数 getBroadcast() 是完全错误的。该参数用于PendingIntent 标志。你想在那里做什么?
  • 你是说如果Intent 中有额外内容,则不会调用onReceive()?你确定吗? onReceive()添加登录了吗?

标签: android android-intent android-pendingintent


【解决方案1】:

尝试将系统时间作为requestCode 放入getBroadcast() 函数中。

int requestID = (int) System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getBroadcast(Recordatori_Visita.this, requestID, intent, intent.FILL_IN_DATA);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2022-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多