无法向BroadcastReceiver发送意图

时间:2013-04-22 08:47:14

标签: android broadcastreceiver

我的搜索没有让我找到任何解决方案,也许更简单的事情让我的代码无效。

我的活动javapage在OnCreate中包含了这个:

Intent MyCountryCodeIntent = new Intent(this,OutgoingCallReceiver.class);
MyCountryCode = "01";
MyCountryCodeIntent.putExtra("code",MyCountryCode);

即使我设置startActivity(MyCountryCodeIntent);sendBroadcast(MyCountryCodeIntent); 这个应用程序挂起

我的OutgoingCallReceiver.class页面包含在onReceive中的内容:

 Bundle bundle = intent.getExtras();
 if(null == bundle) return;
 String MyCountryCodeIntent=intent.getStringExtra("code");

也许出了点问题,但我找不到什么......

2 个答案:

答案 0 :(得分:0)

你必须像这样通过Intent捕获Intent

Intent getextras=getIntent();

比你必须获得特定类型的意图,就像你从前一个活动发送了一个字符串,你必须像这样捕获字符串类型的Intent

String s= getextras.getStringExtra(name);

simillarly

Bundle b = getextras.getBundleExtra(bundle);

答案 1 :(得分:0)

应使用

sendBroadcast方法来调用BroadcastReceiver

以下代码段将为您提供帮助。

Intent MyCountryCodeIntent = new Intent("com.get.broadcast");
MyCountryCodeIntent.putExtra("code","01");
sendBroadcast(MyCountryCodeIntent);

您应该注册OutgoingCallReceiver以便采取行动com.get.broadcast

IntentFilter filter = new IntentFilter();
filter.addAction("com.get.broadcast");
registerReceiver(new OutgoingCallReceiver(),filter);

在onReceive中你可以使用该值。

您应该通过以下帖子获取更多详细信息。

http://mobisys.in/blog/2012/01/android-sending-receiving-broadcast-messages/