2014-04-11 28 views
1

我來自網絡世界,我是Android新手。在Android中從數據庫中再次獲取對象效率不高嗎?

在網絡的世界裏,你通常通過對事物的ID,從「列表視圖」的「詳細信息視圖」,例如:

URL: Messages/List --> Message/Detail?messageId=x 

在Android中,我有這個活動與我的所有郵件:MessagesActivity
它們從數據庫(SQLite)中獲取並顯示在具有自定義適配器的ListView中。

問題:將此活動的消息ID(在本意圖的附加內容中)傳遞給MessageDetailActivity效率不高嗎?

@Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    {    
     Intent intent = new Intent(thisActivityContext, MessageDetailActivity.class); 
     intent.putExtra("messageId", id); // inefficient? should pass object? 
     startActivity(intent); 
    } 

與傳遞整個消息對象相反。 我在問這個,因爲我沒有在我看來非常直觀地使用「標籤」,我不得不施放...

此外,將所有「消息」對象放在標記中使用大量的內存也許

回答

1

如果你的對象比較輕,你可以讓它的類實現Serializable並將它作爲額外的MessageDetailActivity傳遞,如果你認爲對象很重(內部有許多字段和嵌套對象)應該通過Id並從MessageDetailActivity再次獲取它。

請記住,雖然從Android上的Sqlite獲取記錄在大多數設備上都很快,所以它可以在您的新活動中獲取一些記錄(只要您在後臺線程上執行以保持UI從鎖定)

但是我發現的一件事是,如果你需要修改分貝上的對象,你會爲自己節省很多麻煩,如果你每次創建任何活動時從數據庫中獲取整個objet ,因爲這樣你會避免同步問題。

+1

最後一部分有很大的意義..如果我編輯MessageDetailActivity內的消息對象,然後回到MessagesListActivity,我會有一個嚴重的同步問題 – sports

相關問題