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
块无法运行该广播。