【问题标题】:In Android, usege of ProgressDialog.show() and ProgressDialog.hide() problem during fetching data from the internet在 Android 中,从 Internet 获取数据时使用 ProgressDialog.show() 和 ProgressDialog.hide() 问题
【发布时间】:2011-04-13 07:59:03
【问题描述】:

当我定义进度对话框功能时,例如

    public static void showLoadingBar(Context context)
{
    dialog=new ProgressDialog(context);
    dialog.setMessage("Please wait");
    dialog.show();
}
public static void hideLoadingBar()
{
    dialog.dismiss();

}

我想像下面这样使用它:

    UiManager.getInstance().showLoadingBar(this);
    FetchData();
    UiManager.getInstance().hideLoadingBar();

但在我评论之前,我永远无法显示 LoadingBar UiManager.getInstance().hideLoadingBar();像这样的行

    UiManager.getInstance().showLoadingBar(this);
    FetchData();
    //UiManager.getInstance().hideLoadingBar();

这是什么原因,屏幕上总是有进度条。有没有办法摆脱这个问题?

【问题讨论】:

    标签: android progress-bar static-methods pipeline iteration


    【解决方案1】:

    FetchData() 似乎是一个异步操作。因此,在实际操作完成之前,函数返回并隐藏加载栏。我建议你使用AsyncTask

    要在 AsyncTask 运行时显示进度对话框,您可以在 onPreExecute() 中调用 show() 并在 onPostExecute() 中调用 hide()。从doInBackground() 致电FetchData()。这将在 AsyncTask 执行其后台方法之前启动 ProgressDialog,并在完成时停止 ProgressDialog。

    【讨论】:

    • 支持它。 @Muratcan 如果这是异步操作,您应该在 FetchData() 返回时隐藏进度条。
    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2018-07-02
    • 2019-11-14
    • 1970-01-01
    相关资源
    最近更新 更多