1

在主要活动的 onCreate 方法中,我有一些代码正在检查是否启用了 wifi 连接。如果不是,我正在尝试自动启用它(现在非常重要),然后我想做其他东西(启动服务..和其他东西)。在继续执行之前必须启用它非常重要!

我已经尝试过 AsyncTask ,但没有运气。(代码仍在下面执行,在 AsyncTask 中的任务完成之前)。

如何在某些任务完成执行某些代码?

编辑:

我在主要活动中的 onCreate

wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); 

    if(!wifiManager.isWifiEnabled()) {


        new Asyn(this, progress, wifiManager);


        } 


    startService(new Intent(intentt));

异步类

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();

}

}

在 wifi 未完全启用之前,我不想执行“startService”!

4

1 回答 1

0

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

监听WIFI状态

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

于 2013-01-16T21:45:53.200 回答