sql >> Databáze >  >> RDS >> SQLite

Android SQLiteDB nedokončuje přidávání hodnot

Opravil jsem to vytvořením IntentService s AsyncTask uvnitř a voláním v rámci onPause. Nyní funguje bez chyb. Zde je kód v onPause:

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

A tady je moje třída SaveService:

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



  1. Jaká je výchozí velikost vstupu varchar2 do uložené procedury Oracle a lze ji změnit?

  2. Jak zabránit duplicitním uživatelským jménům při registraci lidí?

  3. Spravujte souběžnost transakcí pomocí zámků na serveru SQL Server

  4. SQL Server Regulární výrazy v T-SQL