我正在尝试在我的Android应用中使用sendOrderedBroadcast。Android - sendOrderedBroadcast帮助
我希望能够将Intent从我的一个应用程序发送到另一个应用程序,然后我想从接收Intent的应用程序中获取数据,在这种情况下,它是一个布尔值true或false。
下面是当前的代码:
Intent i = new Intent();
i.setAction(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT);
i.putExtra("com.testnetworks.QCLEVEL", aProposedTheoreticalQoSLevel);
sendOrderedBroadcast(i, null, null, null, Activity.RESULT_OK, null, null);
这是实现我想要什么的正确方法?
如果是这样,我用什么作为resultReceiver *参数? (第三参数)
然后如何从广播中接收数据?
我已经做了一个快速谷歌,并没有拿出任何例子,任何帮助或例子非常感谢。
更新的代码:
sendOrderedBroadcast(i, null, domainBroadcast, null, Activity.RESULT_OK, null, null);
class DomainBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Log.d("BROADCAST", "Returning broadcast");
Bundle b = intent.getExtras();
Log.d("BROADCAST", "Returning broadcast " +
b.getInt("com.testnetworks.INT_TEST"));
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Bundle b = intent.getExtras();
int testQCLevel = b.getInt("com.testnetworks.QCLEVEL");
switch(testQCLevel){
case 1:
Log.d("QCLevel ", "QCLevel = UNAVAILABLE");
break;
case 2:
Log.d("QCLevel ", "QCLevel = BELOWUSABILITY");
break;
case 3:
Log.d("QCLevel ", "QCLevel = VOICE");
break;
}
intent.putExtra("com.testnetworks.INT_TEST", 100);
}
因此根据文档的我应该在我的DomainBroadcast接收器中收到100回,但总是回到0.
任何人都可以看到为什么?
** resultReceiver - 你自己的BroadcastReceiver治疗作为广播的最终接受*
你有以上两个'的onReceive()'方法。 – JRL 2010-05-31 16:57:18