【问题标题】:getStringExtra thows NullPointerException (name is null)getStringExtra 抛出 NullPointerException(名称为空)
【发布时间】:2014-03-19 03:50:28
【问题描述】:

我正在使用 LocalBroadcastManager 广播一个意图,我想在这个意图中添加一个额外的字符串。

广播代码:

    Intent intent = new Intent(action);
    intent.putExtra("STRING_I_NEED", strValue);
    LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(action));

收货人代码:

    IntentFilter filter = new IntentFilter();
    filter.addAction(MusicService.action);
    mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(MusicService.action)) {
                updateUI(intent.getStringExtra("STRING_I_NEED")); // THIS IS THE LINE THAT GIVES ME THE ERROR        
            }
        }
    };
    LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, filter);

我收到错误 NullPointerException name is null。

我在这里遗漏了什么吗?任何帮助表示赞赏。

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    您在这里创建了两个意图..所以一个意图没有任何附加数据..

    所以改变这一行

    LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(action));
    

    进入

    LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
    

    【讨论】:

    • 这就是答案!谢谢您的帮助!我会尽快接受您的答复
    • 有时间接受答案。你速度超快!哈哈哈
    • 如果你只是简单地做intent.getExtras().getString(key),你会冒空指针执行的风险。此外,它真的很罗嗦,打字很烦人。使用github.com/beplaya/Wagon 获取额外信息。更容易。
    【解决方案2】:

    试试这个intent.getExtras().getString(key)

    【讨论】:

    • 感谢您的回答,但这不是问题。
    猜你喜欢
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多