好的,我有一个程序需要等到 android 完全启用 wifi 适配器。我有这个 Activity 代码并且它可以工作,但老实说我不认为这是等待某些任务完成的正确方法(在这种情况下,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 后停止显示进度对话框
提前致谢!
最佳答案
子类 AsyncTask,这正是创建 AsyncTask 的目的。
http://developer.android.com/reference/android/os/AsyncTask.html
关于java - 显示进度对话框直到任务完成它的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358299/