将数据插入本地数据库时,Android ProgressBar无法更新

纳扬·萨德(Nayan Sarder)

我在更新进度栏时遇到问题。在这里,我做了一个自定义的进度条功能,如下所示

ProgressDialog progressBar1;
    private int progressBarStatus = 0;
    private void customProgressBar(){
        progressBar1 = new ProgressDialog(DictionaryActivity.this);
        progressBar1.setCancelable(true);
        progressBar1.setMessage("Downloading File...");
        progressBar1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressBar1.setMax(100);
        progressBar1.setProgress(0);

        progressBar1.show();

        //reset progress bar status
        progressBarStatus = 0;

        new Thread(new Runnable() {
            public void run() {
                while (progressBarStatus < 100) {

                    Log.d("TAG", "run: pStatus" + " " + pStatus);


                    try {
                        Thread.sleep(1000);
                    }
                    catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    // call progressBar status data update
                    progressBarStatus = setProgressBarStatus();

                    new Handler(Looper.getMainLooper()).post(new Runnable(){
                        @Override
                        public void run() {
                            progressBar1.setProgress(progressBarStatus);
                            Log.d("TAG", "run: handler: " +progressBarStatus);
                        }
                    });

                }

                // when, file is downloaded 100%,
                if (progressBarStatus >= 100) {

                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    // close the progress bar dialog
                    progressBar1.dismiss();
                }
            }
        }).start();
    }

    public int setProgressBarStatus(){
        return progressBarStatus += 2;
    }

然后从数据下载功能调用它。数据下载完成后,我将数据插入SQLite DB(本地dB)。

在此之前,数据插入策略进度条将更新。但是当数据提示插入进度条时不会更新。如何解决这个问题?谢谢大家。

纳扬·萨德(Nayan Sarder)

我已经解决了这个问题。经过3个小时的研究,我发现当我在中添加insert函数(从那里我叫DB进行插入)Thread并发送更新的进度值到时Progress Thread然后它可以完美工作并setProgress()更新进度。

int pStatus = 0;
public void dataInsertinoUsingThread(final Example data){
    new Thread(new Runnable() {
        @Override
        public void run() {

            for (int i=0; i<data.getData().getBanglaWordDictionary().size(); i++){

                .........

                pStatus+=i;

             }
         }
    }).start();
}

谢谢大家。如果有人有这种类型的问题。您可以按照这种方式。另外,如果有人找到比我的解决方案更好的解决方案,您可以给出答案或建议。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将数据插入android studio sqlite数据库

来自分类Dev

无法插入本地数据库

来自分类Dev

无法将数据插入数据库

来自分类Dev

无法将数据插入数据库

来自分类Dev

无法将记录插入或更新到数据库jsp

来自分类Dev

Android ProgressBar无法按预期更新?

来自分类Dev

更新本地Android数据库

来自分类Dev

无法将值插入数据库

来自分类Dev

尝试将数据插入数据库MVC4时无法识别操作方法

来自分类Dev

将数据插入数据库时无法自动连线字段

来自分类Dev

将数据插入数据库后,无法在 Laravel 中显示数据库中的数据

来自分类Dev

Android 登录注册:无法使用 volley 将数据插入数据库

来自分类Dev

将数据插入数据库,无法解决

来自分类Dev

C#-无法将数据插入MySQL数据库

来自分类Dev

无法将数据插入MySQL数据库

来自分类Dev

无法使用Ajax将数据插入数据库

来自分类Dev

无法使用Django将数据插入数据库

来自分类Dev

无法将数据插入MySQL数据库

来自分类Dev

无法将MCRYPT加密的数据插入数据库

来自分类Dev

无法在片段内将数据插入数据库

来自分类Dev

无法使用 AJAX 将数据插入 mysql 数据库

来自分类Dev

无法将数据插入数据库 000webhost

来自分类Dev

无法使用 PHP 将数据插入 Postgres 数据库

来自分类Dev

无法在Android SQlite数据库中插入数据

来自分类Dev

无法插入数据库

来自分类Dev

将日期插入数据库时,JDBC 无法按预期工作

来自分类Dev

将哈希插入数据库时,Sqlite无法识别令牌

来自分类Dev

无法将数据库还原到本地 (xampp)

来自分类Dev

无法将新行插入数据库