Skip to content Skip to sidebar Skip to footer

Android SQLiteDB Doesn't Finish Adding Values

My SQLiteDatabase is giving me some trouble. When the user closes the app, in onPause() an AsyncTask begins to save the data. I don't know if this is the best way to do it, but the

Solution 1:

I fixed this by creating an IntentService with an AsyncTask inside of it, and calling it within onPause. It works error-free now. Here's the code in onPause:

    Intent saveIntent = new Intent(this, SaveService.class);
    startService(saveIntent); 

And here's my SaveService class:

public class SaveService extends IntentService
{
    private ArrayList<Ingredient> ingredientsArray;
    private ArrayList<Unit> unitsArray;
    private DatabaseHelper dbHelper;

    public SaveService(String name) 
    {
        super(name);
    }

    public SaveService() 
    {
        super("SaveService");
    }

    @Override
    protected void onHandleIntent(Intent intent) 
    {
        //save data to database
        dbHelper = new DatabaseHelper(getApplicationContext());
        ingredientsArray = QuickBakeConverterPro.ingredients;
        unitsArray = QuickBakeConverterPro.units;

        new SaveAllTask().execute();
    }

    private class SaveAllTask extends AsyncTask<Void, Void, Void>
    {
        @Override
        protected Void doInBackground(Void... args) 
        {
            //open database
            try 
            {
                dbHelper.openDatabase();
            }catch(SQLException sqle)
            {    
                throw sqle;  
            }

            dbHelper.deleteAll();

            //add all ingredients & units
            for (int i = 0; i < ingredientsArray.size(); i++)
                dbHelper.addIngredient(ingredientsArray.get(i));
            for (int i = 0; i < unitsArray.size(); i++)
                dbHelper.addUnit(unitsArray.get(i));

            dbHelper.close();

            return null;
        }
    }//SaveAllTask
}//class SaveService

Post a Comment for "Android SQLiteDB Doesn't Finish Adding Values"