在主要活动的onCreate方法中,我有一些代码正在检查是否启用了wifi连接。如果它不是我想要自动启用它(现在非常重要)之后我想做其他东西(启动服务..和其他事情)。非常重要的是,必须先启用才能继续执行!
我已经尝试过AsyncTask,但没有运气。 (在AsyncTask中的任务完成之前,代码仍然在下面执行。)
如何实现某些代码执行 AFTER 某项任务完成后?
编辑:
我在主要活动中的onCreate
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
if(!wifiManager.isWifiEnabled()) {
new Asyn(this, progress, wifiManager);
}
startService(new Intent(intentt));
Asyn Class
public class Asyn extends AsyncTask<Context, Integer, Long> {
private Context context;
private ProgressDialog pd;
private WifiManager wm;
public Asyn(Context context, ProgressDialog pd, WifiManager wm) {
this.context = context;
this.pd = pd;
this.wm = wm;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = ProgressDialog.show(context, "", "Enabling wifi");
}
@Override
protected Long doInBackground(Context... params) {
wm.setWifiEnabled(true);
return null;
}
@Override
protected void onPostExecute(Long result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pd.dismiss();
}
}
我不想执行“startService”直到wifi没有完全启用!
答案 0 :(得分:0)
异步任务不是解决方案,因为启动WIFI是您在调用wm.setWifiEnabled(true);
后不能假设的事情
您必须在WiFi状态下添加广播接收器。
请看一下这个答案:
我相信第二个答案(不是被接受的答案)就是你所寻求的