android - 如何在 Android 中正确实现 progressBar?

标签 android

现在我正在做一个 Android 应用程序。在我的应用程序中,我必须从 json 页面获取数据。此操作需要时间延迟。所以我必须显示一个进度条,直到获取过程完成。我使用了以下代码显示进度条。

 public void onCreate(Bundle savedInstanceState) {
//somecode
ProgressDialog progressBar = new ProgressDialog(this);
     progressBar.setCancelable(true);
      progressBar.setMessage("Loading");
      progressBar.show();
      Thread thread = new Thread(this);
      thread.start();

}
 public void run() {
    flag=GetFixtureDetailsJsonFunction();
    handler.sendEmptyMessage(0);
}
protected boolean GetFixtureDetailsJsonFunction() {
//json parsing code
return true
}
private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        if (flag==true) {
            progressBar.dismiss();
        }


    }
};

使用这段代码我得到了异常。android.view.ViewRoot$CalledFromWrongThreadException:只有创建 View 层次结构的原始线程才能触及它的 View 。

最佳答案

AsyncTask 是从 xml 或数据库获取响应的最佳方式。像这样尝试,

private class DownloadQuestion extends AsyncTask<String, Void, String> 
    {           

        @Override
        protected void onPreExecute() 
        {

            pd = ProgressDialog.show(Activity_SplashScreen.this, "","Please wait...", true,false);                    

            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... urls) 
        {
            //Write background code here Code 
            return "";
        }

        @Override
        protected void onPostExecute(String response1) 
        {
            //Some Code.....

            if (pd != null && pd.isShowing())
                pd.dismiss();

        }
    }

关于android - 如何在 Android 中正确实现 progressBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766365/

相关文章:

java - 如何在四个字符的十六进制字符串中显示 12 位二进制?

android - Android Studio 中的 color.xml 文件出现奇怪的错误

java - 将单独的结果集添加到 ListView

android - 来自多个内容提供商的结果的光标 - Android

android - 当对话框被关闭时执行 UI 相关任务的正确方法是什么

java - 如何在android中的POJO中设置和获取 `ServerValue.TIMESTAMP`?

Android Fragment找不到ID的 View ?

android - 如何将我的 android 应用程序与数据库打包

android - 当键盘出现在 ConstraintLayout 中时如何向上移动 View

java - 我无法在应用程序中读取 JSON