显示进度doInbackground [英] Display progress while doInbackground

查看:543
本文介绍了显示进度doInbackground的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

虽然这code的工作,但会出现黑屏,直至doInBackground完成

While this code works, but the blank screen appears until doInBackground is complete

package com.vaishnavismeclass.english.naalaayiradivyaprabandam;



import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.AsyncTask;
import android.util.Log;

public class Divyadesamdb extends AsyncTask<String, Void, String>{

    public static final String KEY_ROWID = "_id";
    public static final String KEY_CODE = "code";
    public static final String KEY_NAME = "name";
    public static final String KEY_CONTINENT = "continent";

    private static final String TAG = "CountriesDbAdapter";
    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;

    private final Context mCtx;

    /*
     * My code starts here
     */
    // Table prabandham
    public static final String TABLE_PRABANDHAMS = "prabandhams";
    public static final String PRABANDHAMS_COLUMN_ID = "_id";
    public static final String PRABANDHAMS_COLUMN_PRABANDHAM = "prabandham";
    public static final String PRABANDHAMS_COLUMN_FROM = "from";
    public static final String PRABANDHAMS_COLUMN_ENDING = "ending";
    public static final String PRABANDHAMS_COLUMN_TOTAL = "total";
    public static final String PRABANDHAMS_COLUMN_AZHWAAR = "azhwaar";
    public static final String PRABANDHAMS_COLUMN_CLASSIFICATION = "classification";

    // Table prabandham
    public static final String TABLE_DIVYADESAMS = "divyadesams";

    public static final String DIVYADESAMS_COLUMN_ID = "_id";
    public static final String DIVYADESAMS_COLUMN_DDD = "ddd";
    public static final String DIVYADESAMS_COLUMN_MANDALAM = "mandalam";
    public static final String DIVYADESAMS_COLUMN_TRAVELBASE = "travelbase";
    public static final String DIVYADESAMS_COLUMN_DIVYADESAM = "divyadesam";
    public static final String DIVYADESAMS_COLUMN_LOCATION = "location";
    public static final String DIVYADESAMS_COLUMN_DISTANCE = "distance";
    public static final String DIVYADESAMS_COLUMN_ROUTE = "route";
    public static final String DIVYADESAMS_COLUMN_POIGAIAZHWAAR = "poigaiazhwaar";
    public static final String DIVYADESAMS_COLUMN_BHOODHATHAZHWAAR = "bhoodhathazhwaar";
    public static final String DIVYADESAMS_COLUMN_PEYAAZHWAAR = "peyaazhwaar";
    public static final String DIVYADESAMS_COLUMN_TIRUMAZHISAIAZHWAAR = "tirumazhisaiazhwaar";
    public static final String DIVYADESAMS_COLUMN_NAMMAZHWAAR = "nammazhwaar";
    public static final String DIVYADESAMS_COLUMN_KULASEKARAAZHWAAR = "kulasekaraazhwaar";
    public static final String DIVYADESAMS_COLUMN_PERIAAHZWAR = "periaahzwar";
    public static final String DIVYADESAMS_COLUMN_ANDAL = "andal";
    public static final String DIVYADESAMS_COLUMN_THONDARADIPPODIAZHWAAR = "thondaradippodiazhwaar";
    public static final String DIVYADESAMS_COLUMN_TIRUMANGAIAZHWAAR = "tirumangaiazhwaar";
    public static final String DIVYADESAMS_COLUMN_TIRUPPANAZHWAAR = "tiruppanazhwaar";
    public static final String DIVYADESAMS_COLUMN_TOTALPAASURAMS = "totalpaasurams";
    public static final String DIVYADESAMS_COLUMN_NOOFAZHWAARSSUNG = "noofazhwaarssung";
    public static final String DIVYADESAMS_COLUMN_GEOCODE = "geocode";
    public static final String DIVYADESAMS_COLUMN_FACINGPOSITION = "facingposition";
    public static final String DIVYADESAMS_COLUMN_TIRUKKOLAM = "tirukkolam";
    public static final String DIVYADESAMS_COLUMN_THAYAR = "thayar";
    public static final String DIVYADESAMS_COLUMN_MOOLAVAR = "moolavar";
    public static final String DIVYADESAMS_COLUMN_UTSAVAR = "utsavar";
    public static final String DIVYADESAMS_COLUMN_VIMAANAM = "vimaanam";
    public static final String DIVYADESAMS_COLUMN_PUSHKARANI = "pushkarani";
    public static final String DIVYADESAMS_COLUMN_AAGAMAM = "aagamam";
    public static final String DIVYADESAMS_COLUMN_SAMPRADHAYAM = "sampradhayam";
    public static final String DIVYADESAMS_COLUMN_OTHERNAME = "othername";

    // table azhwaar
    public static final String TABLE_AZHWAARS = "azhwaars";

    public static final String AZHWAARS_COLUMN_ID = "_id";
    public static final String AZHWAARS_COLUMN_NAME = "name";
    public static final String AZHWAARS_COLUMN_ORIGIN = "origin";
    public static final String AZHWAARS_COLUMN_GEOCODE = "geocode";
    public static final String AZHWAARS_COLUMN_CALENDAR = "calendar";
    public static final String AZHWAARS_COLUMN_NAKSHATRAM = "nakshatram";
    public static final String AZHWAARS_COLUMN_PRABANDAM = "prabandam";
    public static final String AZHWAARS_COLUMN_PERIOD = "period";
    public static final String AZHWAARS_COLUMN_NAMMAZHWAAR_AMSAM = "nammazhwaar_amsam";
    public static final String AZHWAARS_COLUMN_NITYASURI_AMSAM = "nityasuri_amsam";
    public static final String AZHWAARS_COLUMN_OTHERNAMES = "othernames";
    public static final String AZHWAARS_COLUMN_MANGALASAASANAM = "mangalasaasanam";

    // table pasurams
    public static final String TABLE_PASURAMS = "pasurams";

    public static final String PASURAMS_COLUMN_ID = "_id";
    public static final String PASURAMS_COLUMN_PAASURAMNUMBER = "paasuramnumber";
    public static final String PASURAMS_COLUMN_AZHWAAR = "azhwaar";
    public static final String PASURAMS_COLUMN_AAYIRAM = "aayiram";
    public static final String PASURAMS_COLUMN_CATEGORY = "category";
    public static final String PASURAMS_COLUMN_SUBCATEGORY = "subcategory";
    public static final String PASURAMS_COLUMN_TITLE = "title";
    public static final String PASURAMS_COLUMN_TITLENUMBER = "titlenumber";
    public static final String PASURAMS_COLUMN_MANGALASASANAMON = "mangalasasanamon";
    public static final String PASURAMS_COLUMN_PAASURAM_EN_STR = "paasuram_en_str";
    public static final String PASURAMS_COLUMN_IMAGE_ID = "imageid";

    private static final String DATABASE_NAME = "divyaprabandam.db";
    private static final int DATABASE_VERSION = 4;

    // Database creation sql statement
    private static final String PASURAM_CREATE = "CREATE TABLE  "
            + TABLE_PASURAMS + " (" + PASURAMS_COLUMN_ID
            + " integer PRIMARY KEY autoincrement,"
            + PASURAMS_COLUMN_PAASURAMNUMBER + " Text,"
            + PASURAMS_COLUMN_AAYIRAM + " Text," + PASURAMS_COLUMN_AZHWAAR
            + " Text," + PASURAMS_COLUMN_CATEGORY + " Text,"
            + PASURAMS_COLUMN_SUBCATEGORY + " Text," + PASURAMS_COLUMN_TITLE
            + " Text," + PASURAMS_COLUMN_TITLENUMBER + " Text,"
            + PASURAMS_COLUMN_MANGALASASANAMON + " Text,"
            + PASURAMS_COLUMN_PAASURAM_EN_STR + " Text,"
            + PASURAMS_COLUMN_IMAGE_ID + " integer);";

    /*
     * My code ends here
     */
    private static class DatabaseHelper extends SQLiteOpenHelper {

        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            Log.w(TAG, PASURAM_CREATE);
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_PASURAMS);
            db.execSQL(PASURAM_CREATE);

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");

            db.execSQL("DROP TABLE IF EXISTS " + TABLE_PASURAMS);

            onCreate(db);
        }
    }

    public Divyadesamdb(Context ctx) {
        this.mCtx = ctx;
    }

    public Divyadesamdb open() throws SQLException {
        mDbHelper = new DatabaseHelper(mCtx);
        mDb = mDbHelper.getWritableDatabase();
        return this;
    }

    public void close() {
        if (mDbHelper != null) {
            mDbHelper.close();
        }
    }

    public long createPasuram(String pasuramNumber, String Azhwaar,
            String Aayiram, String Category, String SubCategory, String Title,
            String TitleNumber, String MangalasasanamOn, String Paasuram_en_str) {

        ContentValues initialValues = new ContentValues();
        initialValues.put("paasuramnumber", pasuramNumber);
        initialValues.put("aayiram", Aayiram);
        initialValues.put("azhwaar", Azhwaar);
        initialValues.put("category", Category);
        initialValues.put("subcategory", SubCategory);
        initialValues.put("title", Title);
        initialValues.put("titlenumber", TitleNumber);
        initialValues.put("mangalasasanamon", MangalasasanamOn);
        initialValues.put("paasuram_en_str", Paasuram_en_str);
        if (Azhwaar.equals("Poigai Azhwaar"))
            initialValues.put("imageid", R.drawable.poigai);
        if (Azhwaar.equals("Bhoodhath Azhwaar"))
            initialValues.put("imageid", R.drawable.bhoodath);
        if (Azhwaar.equals("Peya Azhwaar"))
            initialValues.put("imageid", R.drawable.pey);
        if (Azhwaar.equals("Tirumazhisai Azhwaar"))
            initialValues.put("imageid", R.drawable.thirumazhisai);
        if (Azhwaar.equals("Namm Azhwaar"))
            initialValues.put("imageid", R.drawable.nammalwar);
        if (Azhwaar.equals("Madhurakavi Azhwaar"))
            initialValues.put("imageid", R.drawable.madhurakavi);
        if (Azhwaar.equals("Kulasekara Azhwaar"))
            initialValues.put("imageid", R.drawable.kulasekara);
        if (Azhwaar.equals("PeriyAzhwaar"))
            initialValues.put("imageid", R.drawable.perialwar);
        if (Azhwaar.equals("Andal"))
            initialValues.put("imageid", R.drawable.andal);
        if (Azhwaar.equals("Thondaradippodi Azhwaar"))
            initialValues.put("imageid", R.drawable.thondaradipodi);
        if (Azhwaar.equals("Tiruppaan Azhwaar"))
            initialValues.put("imageid", R.drawable.tiruppan);
        if (Azhwaar.equals("Tirumangai Azhwaar"))
            initialValues.put("imageid", R.drawable.tirumangai);

        return mDb.insert(TABLE_PASURAMS, null, initialValues);

    }

    public boolean deleteAllPasurams() {

        int doneDelete = 0;
        doneDelete = mDb.delete(TABLE_PASURAMS, null, null);
        Log.w(TAG, Integer.toString(doneDelete));
        return doneDelete > 0;

    }

    public int getCountAllPasurams() {

        int totalPasurams = 0;
        String countQuery = "SELECT  * FROM " + TABLE_PASURAMS;
        Cursor cursor = mDb.rawQuery(countQuery, null);
        totalPasurams = cursor.getCount();
        cursor.close();
        Log.w(TAG, Integer.toString(totalPasurams));
        return totalPasurams;

    }

    public Cursor fetchAllPasurams(String pasuramNumber, String aayiram,
            String azhwaar, String category, String mangalasasanamOn,
            String subCategory, String title, String from, String ending) {
        Cursor mCursor = mDb.query(TABLE_PASURAMS, new String[] {
                PASURAMS_COLUMN_ID, PASURAMS_COLUMN_PAASURAMNUMBER,
                PASURAMS_COLUMN_AAYIRAM, PASURAMS_COLUMN_AZHWAAR,
                PASURAMS_COLUMN_CATEGORY, PASURAMS_COLUMN_MANGALASASANAMON,
                PASURAMS_COLUMN_PAASURAM_EN_STR, PASURAMS_COLUMN_SUBCATEGORY,
                PASURAMS_COLUMN_TITLE, PASURAMS_COLUMN_TITLENUMBER,
                PASURAMS_COLUMN_IMAGE_ID }, PASURAMS_COLUMN_CATEGORY
                + " LIKE ? AND " + PASURAMS_COLUMN_SUBCATEGORY + " LIKE ? AND "
                + PASURAMS_COLUMN_TITLE + " LIKE ?", new String[] {
                "%" + category + "%", "%" + subCategory + "%",
                "%" + title + "%" }, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();

        }

        return mCursor;
    }

    public void insertPasurams() {
/*
        ContentValues _pasuramsValues = new ContentValues();
        Resources res = mCtx.getResources();
        String[] _pasuramsTable_Records = res.getStringArray(R.array.pasurams);
        // Loop trough array and insert records into table
        int _Length = _pasuramsTable_Records.length;

        int progressPercent = 0;

        ProgressDialog barProgressDialog = new ProgressDialog(mCtx);
        barProgressDialog.setTitle("Setting up Paasurams ...");
        barProgressDialog.setMessage("Creating Paasurams ...");
        barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);
        barProgressDialog.setProgress(0);
        barProgressDialog.setMax(4535);
        barProgressDialog.show();

        for (int i = 0; i < _Length; i++) {
            /*
             * Update the progress on every 45 for 99 times
             * reminder move to 100%
             * 
             */
            /*
            barProgressDialog.incrementProgressBy(1);
            if ( (i % 45) == 0)
            {
            progressPercent++;
            barProgressDialog.incrementProgressBy(1);
            }

            if (progressPercent==99){
                progressPercent++;
                barProgressDialog.incrementProgressBy(1);
            }
            */
            //
            // split the csv string to columns
            //
            //String[] pasuramsSplitString = _pasuramsTable_Records[i].split(",");
            //
            // store the values into collection
            /*
            _pasuramsValues.put("paasuramnumber", pasuramsSplitString[0]);
            _pasuramsValues.put("aayiram", pasuramsSplitString[2]);
            _pasuramsValues.put("azhwaar", pasuramsSplitString[1]);
            _pasuramsValues.put("category", pasuramsSplitString[3]);
            _pasuramsValues.put("subcategory", pasuramsSplitString[4]);
            _pasuramsValues.put("title", pasuramsSplitString[5]);
            _pasuramsValues.put("titlenumber", pasuramsSplitString[6]);
            _pasuramsValues.put("mangalasasanamon", pasuramsSplitString[7]);
            _pasuramsValues.put("paasuram_en_str", pasuramsSplitString[8]);
            if (pasuramsSplitString[1].equals("Poigai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.poigai);
            if (pasuramsSplitString[1].equals("Bhoodhath Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.bhoodath);
            if (pasuramsSplitString[1].equals("Peya Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.pey);
            if (pasuramsSplitString[1].equals("Tirumazhisai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.thirumazhisai);
            if (pasuramsSplitString[1].equals("Namm Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.nammalwar);
            if (pasuramsSplitString[1].equals("Madhurakavi Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.madhurakavi);
            if (pasuramsSplitString[1].equals("Kulasekara Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.kulasekara);
            if (pasuramsSplitString[1].equals("PeriyAzhwaar"))
                _pasuramsValues.put("imageid", R.drawable.perialwar);
            if (pasuramsSplitString[1].equals("Andal"))
                _pasuramsValues.put("imageid", R.drawable.andal);
            if (pasuramsSplitString[1].equals("Thondaradippodi Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.thondaradipodi);
            if (pasuramsSplitString[1].equals("Tiruppaan Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.tiruppan);
            if (pasuramsSplitString[1].equals("Tirumangai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.tirumangai);

            mDb.insert("pasurams", null, _pasuramsValues);
        }*/
        doInBackground("Hello");
    }

    @Override
    protected String doInBackground(String... arg0) {
        ContentValues _pasuramsValues = new ContentValues();
        Resources res = mCtx.getResources();
        String[] _pasuramsTable_Records = res.getStringArray(R.array.pasurams);
        // Loop trough array and insert records into table
        int _Length = _pasuramsTable_Records.length;
        int progressPercent = 0;

        ProgressDialog barProgressDialog = new ProgressDialog(mCtx);
        barProgressDialog.setTitle("Setting up Paasurams ...");
        barProgressDialog.setMessage("Creating Paasurams ...");
        barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);
        barProgressDialog.setProgress(0);
        barProgressDialog.setMax(4535);
        barProgressDialog.show();

        for (int i = 0; i < _Length; i++) {
            /*
             * Update the progress on every 45 for 99 times
             * reminder move to 100%
             * 
             */

            barProgressDialog.incrementProgressBy(1);
            if ( (i % 45) == 0)
            {
            progressPercent++;
            barProgressDialog.incrementProgressBy(1);
            }

            if (progressPercent==99){
                progressPercent++;
                barProgressDialog.incrementProgressBy(1);
            }
            //
            // split the csv string to columns
            //
            String[] pasuramsSplitString = _pasuramsTable_Records[i].split(",");
            //
            // store the values into collection
            //
            _pasuramsValues.put("paasuramnumber", pasuramsSplitString[0]);
            _pasuramsValues.put("aayiram", pasuramsSplitString[2]);
            _pasuramsValues.put("azhwaar", pasuramsSplitString[1]);
            _pasuramsValues.put("category", pasuramsSplitString[3]);
            _pasuramsValues.put("subcategory", pasuramsSplitString[4]);
            _pasuramsValues.put("title", pasuramsSplitString[5]);
            _pasuramsValues.put("titlenumber", pasuramsSplitString[6]);
            _pasuramsValues.put("mangalasasanamon", pasuramsSplitString[7]);
            _pasuramsValues.put("paasuram_en_str", pasuramsSplitString[8]);
            if (pasuramsSplitString[1].equals("Poigai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.poigai);
            if (pasuramsSplitString[1].equals("Bhoodhath Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.bhoodath);
            if (pasuramsSplitString[1].equals("Peya Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.pey);
            if (pasuramsSplitString[1].equals("Tirumazhisai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.thirumazhisai);
            if (pasuramsSplitString[1].equals("Namm Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.nammalwar);
            if (pasuramsSplitString[1].equals("Madhurakavi Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.madhurakavi);
            if (pasuramsSplitString[1].equals("Kulasekara Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.kulasekara);
            if (pasuramsSplitString[1].equals("PeriyAzhwaar"))
                _pasuramsValues.put("imageid", R.drawable.perialwar);
            if (pasuramsSplitString[1].equals("Andal"))
                _pasuramsValues.put("imageid", R.drawable.andal);
            if (pasuramsSplitString[1].equals("Thondaradippodi Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.thondaradipodi);
            if (pasuramsSplitString[1].equals("Tiruppaan Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.tiruppan);
            if (pasuramsSplitString[1].equals("Tirumangai Azhwaar"))
                _pasuramsValues.put("imageid", R.drawable.tirumangai);


            mDb.insert("pasurams", null, _pasuramsValues);
        }
        return null;
    }

}

在该progressdialog是显示。想progressdialog工作,而循环上。任何帮助AP preciated

After that the progressdialog is display. Would like progressdialog to work while loop is on. Any help is appreciated

推荐答案

您可以使用AsyncTask的。

you can use AsyncTask..

检查这个工作code ...

check this working code...

调用AsyncTask的使用新的背景()执行();

to call AsyncTask use new BackGround().execute();

私有阶级背景扩展的AsyncTask&LT;虚空,虚空,虚空> {

private class BackGround extends AsyncTask < Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(Instructions.this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // here is your background process...
        return null;

    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        if (pDialog.isShowing())
            pDialog.dismiss();
    }
}

这篇关于显示进度doInbackground的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆