OK、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 は完全に有効になります)。
- Wi-Fi が有効になっている場合、進行状況ダイアログの表示を停止します
前もって感謝します!