2011-10-26 71 views
2

我正在製作一個使用SQLite數據庫存儲數據的應用程序。有時我的應用程序在訪問數據庫的活動之間切換時凍結,特別是當開始的活動在onCreate()方法中訪問數據庫時。Android:應該以異步方式訪問應用程序中的數據庫嗎?

我應該:

  • 訪問使用異步任務或類似
  • 使用某種管道的控制數據庫請求的數據庫?

請你指點我相關的代碼示例,如果nessecary請嗎?

在此先感謝!

回答

4

是的,您必須使用異步訪問,這是最佳實踐。 SDK特別爲此包含AsynchTask。

BuyAsyncTask extends AsyncTask<Item, Void, Item> { 
    @Override 
    protected Item doInBackground(Item... params) { 
     ..use DB here 
    } 

    @Override 
    protected void onPreExecute() { 
     ..some easy operation befor start thread 
    } 

    @Override 
    protected void onPostExecute(Item resultTask) { 
     ..do what you want, thread is finish 
    } 

} 
+0

你D如何建議我通過更新到異步任務的值,因爲我需要說我是否想要創建,更新,讀取或刪除,並通過數據來處理數據庫。我應該使用捆綁嗎? –

+0

另外,使用異步任務意味着我必須在每個希望使用數據庫的類中都有一個AsyncTask,這是正確的嗎? –

+1

這就像是一個人想的命令。您可以編寫InsertAynckTask,更新...等,或者您可以使用BuyAsynckTask,Sell ..等。我認爲最後是最好的解決方案。在onPreExecute中,您可能會獲得dbDAO的實例,並在doInBackground中使用insert/update..etc。 – IronBCC

相關問題