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 = newIntent(this, SaveService.class);
startService(saveIntent);
And here's my SaveService class:
publicclassSaveServiceextendsIntentService
{
private ArrayList<Ingredient> ingredientsArray;
private ArrayList<Unit> unitsArray;
private DatabaseHelper dbHelper;
publicSaveService(String name)
{
super(name);
}
publicSaveService()
{
super("SaveService");
}
@OverrideprotectedvoidonHandleIntent(Intent intent)
{
//save data to database
dbHelper = newDatabaseHelper(getApplicationContext());
ingredientsArray = QuickBakeConverterPro.ingredients;
unitsArray = QuickBakeConverterPro.units;
newSaveAllTask().execute();
}
privateclassSaveAllTaskextendsAsyncTask<Void, Void, Void>
{
@Overrideprotected Void doInBackground(Void... args)
{
//open databasetry
{
dbHelper.openDatabase();
}catch(SQLException sqle)
{
throw sqle;
}
dbHelper.deleteAll();
//add all ingredients & unitsfor (inti=0; i < ingredientsArray.size(); i++)
dbHelper.addIngredient(ingredientsArray.get(i));
for (inti=0; i < unitsArray.size(); i++)
dbHelper.addUnit(unitsArray.get(i));
dbHelper.close();
returnnull;
}
}//SaveAllTask
}//class SaveService
Post a Comment for "Android Sqlitedb Doesn't Finish Adding Values"