-1

我有 loadData() 用于加载我的 Neuroph 网络。

我想用进度对话框运行它,但如果执行 loadData() 的一部分,我会增加我的进度对话框。

我需要它的教程。

我知道带有处理程序的线程,AsyncTask。但不能用这两种方法做到这一点。

4

1 回答 1

1

因此,我建议您使用AsyncTask为更新而指定的手段,UI并取得一些进展。该工具包含三个最重要的方法:

  • doInBackground - 它在后台线程中做你的工作。
  • onProgressUpdate - 用于更新您的UI(在您的情况下,您可以增加 ProgressDialog 的进度)
  • onPostExecute - 在您的工作完成后调用。

    然后,AsyncTask它是一个强大的工具,非常高效,并且使用泛型,因此是类型安全的。但是您需要阅读更多关于它的信息,因此首先查看参考,然后我建议您查看 Vogella 上的Android 线程、处理程序和 AsyncTask,这是很好的来源。


    然后你想使用ProgressDialog. 因此,只需show()在执行之前创建它和它AsyncTask。然后在onPostExecute方法中,您只需调用dismiss方法来关闭ProgressDialog

    ProgressDialog pd = new ProgressDialog(this);
    pd.setProgress(0);
    pd.setTitle("Some title");
    pd.setMessage("Some message...");
    pd.show();
    yourTask.execute(); // here you are executing your AsyncTask
    

    然后在你的 OnPostExecute 方法中调用dismiss:

    @Override
    protected void onPostExecute(Void unused) {
       pd.dismiss(); // dismissing your ProgressDialog
    }
    
  • 于 2012-07-01T17:18:59.320 回答