防止某些代码在程序流中执行

时间:2013-01-16 21:31:24

标签: java android

在主要活动的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没有完全启用!

1 个答案:

答案 0 :(得分:0)

异步任务不是解决方案,因为启动WIFI是您在调用wm.setWifiEnabled(true);后不能假设的事情 您必须在WiFi状态下添加广播接收器。 请看一下这个答案:

Listening WIFI state

我相信第二个答案(不是被接受的答案)就是你所寻求的