如何使用我的广播接收器?就像我的应用程序启动时如何让接收器不断运行其代码?
我的Reciver代码:
private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager mConnectivity;
mConnectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info == null || !mConnectivity.getBackgroundDataSetting()) {
wifi.setChecked(false);
return;
} else {
int netType = info.getType();
//int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
wifi.setChecked(true);
} else {
wifi.setChecked(false);
}
}
}
};
顺便说一句,Wifi是一个切换按钮。
请帮助谢谢!
答案 0 :(得分:1)
您需要在manifest.xml文件中设置与接收者关联的intent过滤器,如下所示:
<receiver android:name="<fully qualified name of your receiver class>" android:label="@string/label">
<intent-filter>
<action android:name="package name + your action name" />
</intent-filter>
</receiver>
然后,在你的活动中,当你想打电话给你的接收器时,你就是
sendBroadcast( new Intent( "package name + your action name" ) );
然后你应该更新你的应用程序,但是在ui线程内更改小部件:
final boolean checked = true;
runOnUIThread( new Runnable() {
public void run()
{
wifi.setChecked( checked ):
}
});
但是我猜你的接收器是一个内部类的一个活动(只有这样才能得到一个小部件的引用)。因此,不应通过xml注册接收器,而应通过代码注册它。
查看this thread。
此致 斯特凡