我有一个wifi小部件切换wifi状态。但是,如果用户在不使用我的小部件的情况下更改了wifi状态,那么我的小部件将不会反映该更改。恩。 wifi打开,用户通过设置关闭wifi,小部件仍然会显示wifi已打开,因为它尚未更新。
如何在wifi状态发生变化后更新小部件?
答案 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