java - 显示进度对话框直到任务完成它的工作

标签 java android

好的,我有一个程序需要等到 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();
    }
}

有人能告诉我,在某些任务完成之前等待程序执行的正确方法是怎样的?所以程序场景:

  1. 如果 wifi 被禁用,执行 if 语句(显示进度对话框并启用 wifi)
  2. 显示进度对话框直到任务完成(在这种情况下 wifi 完全启用)
  3. 启用 wifi 后停止显示进度对话框

提前致谢!

最佳答案

子类 AsyncTask,这正是创建 AsyncTask 的目的。

http://developer.android.com/reference/android/os/AsyncTask.html

关于java - 显示进度对话框直到任务完成它的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358299/

相关文章:

java - Android 将加速度计读数保存到浮点变量时出现错误?

java - 比较java中表示时间戳的两种不同的UTC字符串格式

java - TabLayout 未绑定(bind)到 Viewpager

java - 发送多个 MIDI 消息

android - 无法将 firebase 与具有 flavor 和尺寸的即时应用程序连接

android - 后台套接字连接

android - Facebook 共享 session 未打开错误

Java:使用 HashMap 作为稀疏 vector

java - Android Firestore查询: get the number of documents within a collection

android - 使用 Dagger 的应用程序组件构建 Android Instant App