0

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

wifi状态更改后如何让小部件更新?

4

2 回答 2

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);

问候,

莱昂纳多奥利维拉

于 2014-06-17T23:05:11.970 回答
0

使用 aBroadcastReceiver通知此类更改

使用注册接收器

IntentFilter mFilter = new IntentFilter();
mFilter .addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
registerReceiver(yourReceiver, mFilter );

并在 onReceiveyourReceiver类中使用

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

更新您的小部件

于 2012-11-12T05:00:43.510 回答