【问题标题】:Passing data from activity to BroadcastReceiver causes NullPointerException将数据从活动传递到 BroadcastReceiver 会导致 NullPointerException
【发布时间】:2015-06-06 13:21:25
【问题描述】:

我有一个 BroadcastReceiver,它通过 Intent 从 Activity 获取数据, 带有 PendingIntent。

发送数据:

Intent intent = new Intent(addOne.this,AlarmReceiver.class);

intent.putExtra("msg", title.getText().toString());
intent.putExtra("note", note.getText().toString());
int id =...;

PendingIntent alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);

获取数据:

@Override
public void onReceive(Context context2, Intent intent) {

       String msg=intent.getStringExtra("msg");
       String title=intent.getStringExtra("msg");
       ...
}

当 onReceive 被调用时,我得到一个 NullPointerException。

我的广播接收器清单:

    <receiver android:name=".AlarmReceiver" android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

【问题讨论】:

  • 您是否调试并检查您是否在味精和标题字符串中获取数据。
  • 我没有得到数据我得到 NullPointerException

标签: android android-intent nullpointerexception broadcastreceiver android-pendingintent


【解决方案1】:

使您的待定意图如下行并尝试

PendingIntent alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intent, PendingIntent.FLAG_CANCEL_CURRENT);

【讨论】:

  • 到底是什么问题??您是否在广播接收器的 msg 和标题字符串中获取数据
  • 您是否已声明并初始化标题并注意您正在创建待处理意图的位置。
  • 我已经测试了你的代码和它的工作,你可能没有初始化你的标题和注释
  • 不,我没有收到字符串 msg 和标题,我收到错误 NULL,我知道您认为它有效,但请尝试在警报工作之前关闭应用程序...
  • 你声明并初始化你的标题,而不是edittext或textview,不管它是什么
猜你喜欢
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多