好的,我有一个程序需要等到 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 时停止显示进度对话框
提前致谢!