【问题标题】:getExtras from ListActivity are NULL in Android BroadcastReceiverListActivity 的 getExtras 在 Android BroadcastReceiver 中为 NULL
【发布时间】:2011-07-17 20:29:50
【问题描述】:

我正在尝试在由 ListActivity 调用的 BroadcastReceiver 中接收一些数据。 它被调用了,我已经测试过了,但是 getExtras 总是返回 NULL。

这是我的 ListActivity 中有趣的部分:

public boolean onContextItemSelected(MenuItem item) {
    Intent distIntent = new Intent();
    distIntent.setAction(Intent.ACTION_SEND);
    distIntent.putExtra("fileName", new File("Test").getName());
    sendBroadcast(distIntent);
}

这是我的 BroadcastReceiver 的对应部分:

public void onReceive(Context c, Intent intent){
    String b = intent.getStringExtra("fileName");
    if(b != null)
        Log.e(logTag, "File Name: "+b);
}

文件存在,其名称已正确添加到意图中,但由于某种原因它没有传播到我的接收器。

任何建议表示赞赏!

【问题讨论】:

    标签: android null broadcastreceiver listactivity extra


    【解决方案1】:

    如果new File("Test").getName() 返回一个非空值,上面的代码应该可以工作。

    是否调用了onReceive 方法?我在清单 XML 中使用以下 <receiver> 块尝试了代码:

    <receiver android:name=".TestReceiver">
           <intent-filter>
               <action android:name="android.intent.action.SEND" />
           </intent-filter>
    </receiver>
    

    还有一些静态字符串而不是 getName 方法调用,它起作用了。

    【讨论】:

    • 非常感谢您的帮助 - 我刚刚意识到我使用了错误的意图过滤器(用于过滤我的自定义意图),因为我也在使用不同的操作进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多