2012-08-22 22 views
4

ORMLite幫助我有一個@Singleton類在那裏我已經注入的OrmLiteSqliteOpenHelper一個實例。我真的需要撥打OpenHelperManager.releaseHelper()嗎?如果我這樣做,在哪裏以及應該怎麼做,因爲該類不擴展任何Android基類,我可以到達onDestroy公佈對@Singleton

回答

3

有一個ORMLite例如Android項目這表明這家名爲HelloAndroidNoBase。我會檢查出來。

從主Activity相關的代碼段包含下面。您需要在您的每個Activity或使用該數據庫的其他類中都有這樣的代碼。

如果你的班級沒有onDestroy()方法,那麼你需要添加一個,並從其他有onDestroy()的班級中調用它。主Activity是一個很好的地方。因此,當應用程序關閉時,MainActivity.onDestroy()將調用yourClass.onDestroy()

public class HelloNoBase extends Activity { 

    private DatabaseHelper databaseHelper = null; 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     if (databaseHelper != null) { 
      OpenHelperManager.releaseHelper(); 
      databaseHelper = null; 
     } 
    } 

    private DatabaseHelper getHelper() { 
     if (databaseHelper == null) { 
      databaseHelper = OpenHelperManager.getHelper(this, 
       DatabaseHelper.class); 
     } 
     return databaseHelper; 
    } 
}