我有一个切换 wifi 状态的 wifi 小部件。但是,如果用户在不使用我的小部件的情况下更改了 wifi 状态,那么我的小部件将不会反映该更改。前任。wifi 开启,用户通过设置关闭 wifi,widget 仍然会显示 wifi 开启,因为它没有更新。
wifi状态更改后如何让小部件更新?
我有一个切换 wifi 状态的 wifi 小部件。但是,如果用户在不使用我的小部件的情况下更改了 wifi 状态,那么我的小部件将不会反映该更改。前任。wifi 开启,用户通过设置关闭 wifi,widget 仍然会显示 wifi 开启,因为它没有更新。
wifi状态更改后如何让小部件更新?
您需要在接收器中注册 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);
问候,
莱昂纳多奥利维拉
使用 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
}
更新您的小部件