好吧,我有一個程序,需要等到android完全啓用WiFi適配器。我有這個活動代碼,它的工作原理,但老實說,我不認爲這是等待一些任務完成(在這種情況下,Android需要啓用無線)的正確方式。顯示進度對話框,直到任務完成其工作
public class MainActivity extends Activity implements Runnable {
ProgressDialog pd;
WifiManager wm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wm = (WifiManager) getSystemService(WIFI_SERVICE);
if(!wm.isWifiEnabled()) {
pd = ProgressDialog.show(this, "Stand by", "Doing work");
Thread t = new Thread(this);
t.start();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void run() {
wm.setWifiEnabled(true);
while(wm.getWifiState() != 3) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
pd.dismiss();
}
}
有人可以告訴我,等待一個程序執行到某個任務完成的正確方法是什麼?所以節目的場景:
- 如果無線網絡被禁用,直到任務完成(在這種情況下,無線網絡能夠完全地)執行if語句(顯示進度對話框,並啓用WiFi)
- 顯示進度對話框
- 當無線網絡連接啓用停止顯示進度對話框
在此先感謝!
使用的AsyncTask或處理程序 – njzk2