2012-11-12 51 views
0

我有一個wifi小部件,切換wifi狀態。但是,如果用戶在不使用我的小部件的情況下更改wifi狀態,那麼我的小部件將不會反映該更改。恩。 wifi開啓,用戶通過設置關閉wifi,小部件仍然會顯示WiFi已打開,因爲它沒有更新。當wifi狀態改變時,你如何調用小部件更新?

無線網絡狀態更改後,如何獲取小部件更新?

回答

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 
} 

更新你的widget

0

您的接收器需要註冊安卓您的接收器中的id.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); 

問候,

萊昂納多Oliveira的

相關問題