好的,我有一个程序需要等到 android 完全启用 wifi 适配器。我有这个活动代码并且它可以工作,但老实说,我认为这不是等待某些任务完成的正确方法(在这种情况下,android 需要启用 wifi)。
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();
}
}
有人可以告诉我,等待程序执行直到某个任务完成的正确方法是什么?所以程序场景:
- 如果 wifi 被禁用,执行 if 语句(显示进度对话框并启用 wifi)
- 显示进度对话框,直到任务完成(在这种情况下 wifi 完全启用)
- 启用 wifi 时停止显示进度对话框
提前致谢!