Android 将值发送到broadcastReceiver意向筛选器
我试图向广播接收器发送额外的值,但总是得到空值。有人能帮我修一下吗 以下是我尝试过的:Android 将值发送到broadcastReceiver意向筛选器,android,intentfilter,android-broadcastreceiver,Android,Intentfilter,Android Broadcastreceiver,我试图向广播接收器发送额外的值,但总是得到空值。有人能帮我修一下吗 以下是我尝试过的: IntentFilter IntentFilter=newintentfilter(DownloadManager.ACTION\u DOWNLOAD\u COMPLETE); registerReceiver(downloadReceiver,intentFilter); Intent intent2=新意图(“my.action.string”); intent2.putExtra(“值”,位置); 发送
IntentFilter IntentFilter=newintentfilter(DownloadManager.ACTION\u DOWNLOAD\u COMPLETE);
registerReceiver(downloadReceiver,intentFilter);
Intent intent2=新意图(“my.action.string”);
intent2.putExtra(“值”,位置);
发送广播(intent2);
在我的广播接收机中
:
private BroadcastReceiver downloadReceiver=new BroadcastReceiver()
{
公共int值=5;
@凌驾
公共void onReceive(上下文arg0,意图)
{
String action=intent.getAction();
value=Integer.valueOf(intent.getExtras().getString(“value”);
if(action.equals(“android.intent.action.DOWNLOAD_COMPLETE”))
{
Log.e(“值”、“+-”+值);
CheckDwnloadStatus(值);
}
}
};
谢谢
位置
是您的整数。如果您正在使用intent.putExtra()
放置整数,则应使用intent.getExtras().getInt()
原因:
在intent.putExtra()
中,我们不指定类型。系统决定我们通过哪种类型的额外考试。由于位置
对于系统来说是一个整数
,我们需要使用intent.getExtras().getInt()
您正在尝试以
字符串的形式检索额外的“值”
。位置
是字符串
?看起来可能是数字型的。是的。它是整数。因此,我在接收时将其转换为整数。您需要使用getInt()
方法,而不是getString()
方法。但我添加了:“my.action.string”,这是用于Intent
过滤的操作string
。这和临时演员的类型无关。顺便说一句,您的操作字符串
s不匹配,因此接收器中的if
块无法运行该广播。