当wifi状态改变时,如何调用小部件更新?

时间:2012-11-12 04:47:39

标签: android android-widget

我有一个wifi小部件切换wifi状态。但是,如果用户在不使用我的小部件的情况下更改了wifi状态,那么我的小部件将不会反映该更改。恩。 wifi打开,用户通过设置关闭wifi,小部件仍然会显示wifi已打开,因为它尚未更新。

如何在wifi状态发生变化后更新小部件?

2 个答案:

答案 0 :(得分:0)

使用BroadcastReceiver通知此类更改

使用

注册接收器
IntentFilter mFilter = new IntentFilter();
mFilter .addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
registerReceiver(yourReceiver, mFilter );

并在yourReceiver班级的onReceive中使用

if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
//Do something
}

更新小部件

答案 1 :(得分:0)

您需要在接收器中注册android.net.conn.CONNECTIVITY_CHANGE和android.net.wifi.WIFI_STATE_CHANGED操作。

然后在onReceive方法中,使用以下代码更新小部件:

Intent i = new Intent(context, WidgetProvider.class);
i.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,
AppWidgetManager.getInstance(context).getAppWidgetIds(new ComponentName(context, WidgetProvider.class)));
context.sendBroadcast(i);

此致

Leonardo Oliveira