Broadcastreceiver缺少来自Intent的额外数据

时间:2014-06-24 12:42:51

标签: android android-intent broadcastreceiver extras

我的Broadcastreceiver出了问题,我不知道自己做错了什么。

我已经阅读了许多帖子@stackoverflow,但没有任何帮助。

我正在从我的帮助类发送广播,广播接收器在一个活动中实现。我在发送它之前在helperclass上添加了一个额外的Intent,但意图@the活动有空的额外内容。我做错了什么?

这是我的源代码:

//助手类

    ...
    public static String BROADCAST_ACTION_DM = "de.je.toctohk.DISPLAYMESSAGE";
    ...
    public void method() {
       String msg = _intent.getStringExtra("message");
       Intent broadcast = new Intent();

       broadcast.setAction(BROADCAST_ACTION_DM);       
       broadcast.putExtra("msg", _chatentryid);

    sendStickyBroadcast(broadcast);      

}

//活性

   private BroadcastReceiver receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        String test = getIntent().getStringExtra("msg");
        Toast.makeText(getApplicationContext(), intent.getExtras().getString("msg"), Toast.LENGTH_SHORT).show();



    }
};

protected void onResume() {
    IntentFilter filter = new IntentFilter();
    filter.addAction(GcmIntentService.BROADCAST_ACTION_DM);
    _testintent = registerReceiver(receiver, filter);
    super.onResume();
}

//清单

    <activity
        android:name="de.je.toctohk.activities.ChatActivity"
        android:label="@string/title_activity_push" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="de.je.toctohk.DISPLAYMESSAGE" /> 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我已经尝试过:

  • 普通广播

  • 仅在活动

  • 中注册过滤器
  • 仅在Manifest中注册过滤器

  • 粘性广播

  • context.getIntent()。getExtra ...

  • ... intent.getExtra

如果有人能给我一些建议,那就太好了。

非常感谢!!

0 个答案:

没有答案