2013-04-22 79 views
0

我的搜索没有让我找到任何解决方案,也许更简单让我的代码无法正常工作。无法发送意向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"); 

可能是错的,但我找不到什么..

+0

您应该指定一个“意愿行动”,而不是使用直接意图广播。因此,名称“广播”。 – RvdK 2013-04-22 09:01:08

回答

0

你必须通过意向搭上意图这样

Intent getextras=getIntent(); 

比你要得到特定类型的意图一样,如果您发送距上一次活动的String你必须抓住字符串的意图象这样输入

String s= getextras.getStringExtra(name); 

simillarly

Bundle b = getextras.getBundleExtra(bundle); 
+0

非常感谢Georges – Georges 2013-04-22 12:16:12

0

sendBroadcast方法S应该用来调用BroadcastReceiver

下面的代码将帮助你。

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

你应该采取行动com.get.broadcast

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

里面的onReceive你将能够使用寄存器的值OutgoingCallReceiver

您应该仔细阅读以下文章以获取更多详细信息。

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

+0

非常感谢Georges – Georges 2013-04-22 12:36:13

+0

@Georges如果你有问题的解决方案,请通过接受正确的答案来解决问题。 – 2013-04-22 12:52:50

+0

我可以问你,我应该如何注册OutgoingCallReceiver才能执行com.get.broadcast? – Georges 2013-04-22 13:09:51