Android BroadcastReceiver中ListActivity的getExtras为NULL

时间:2011-07-17 20:29:51

标签: android null broadcastreceiver listactivity extra

我正在尝试在我的BroadcastReceiver中接收一些由ListActivity调用的数据。 它被称为,我已经测试过,但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);
}

该文件存在,其名称已正确添加到intent中,但由于某种原因,它不会传播到我的接收器。

任何建议表示赞赏!

1 个答案:

答案 0 :(得分: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方法调用,它起作用。