案例:對於我的應用程序的用戶即使他們無法訪問互聯網也能夠使用該應用程序,我將數據存儲在SQLite數據庫中。對於App的不同部分來獲取當前用戶數據,我使用Singleton。 像這樣;Android活動和異步SQLite通信優化
使用前獲取數據和存儲: 請求服務器=>數據包=> Singleton => SQLite數據庫。
用戶的數據顯示: 的SQLite DB => Java類=>辛格爾頓=>活動
通話將數據存儲到SQLite的DB:
DatabaseConductor dbc = new DatabaseConductor(getApplicationContext());
dbc.setReturnCue(MyActivity.this);
dbc.execute(DataBaseActions.STUFF_SQL_IN);
的DatabaseConductor是基本不這個:
public class DataBaseConductor extends AsyncTask<String, String, String> {
private Context context;
private DataBaseConductorCueing returnCue = null;
for (String message : params) {
Log.d("Doing in BG", message);
switch (message) {
case THING_TO_DO:
methodToActiallyDoStuff();
break;
}
是的,DatabaseConductor和調用Activity都使用interfac e用於溝通的東西已經完成。像這樣:
public interface DataBaseConductorCueing {
void processFinish(String output);
}
現在我用公共靜態最終字符串來檢查需要做什麼,說實話,ENUM可能會更好。我希望這段代碼清楚地表明它是如何工作的。 有沒有其他的事情可以做到優化呢?
編輯1:整數更好,然後枚舉。
編輯2:接口的設計模式是一個回調接口,這樣你就不必註冊處理程序。
Thanx的鏈接!並取消訂閱。而且,在代碼片段中沒有單例的例子。 – Flummox