好的,在我的應用程序中,我有一個DBAdapter類,它的工作很好。在主要活動中,我有一個變量this.dbAdapter
。我想與其他Activites共享這個變量,所以我不必在每個Activity中創建一個新的DBAdapter。在活動之間共享DBAdapter
這樣做的最好方法是?我應該做些什麼像intent.putExtra("DbAdapter", this.dbAdapter);
?或者還有另外一種方法可以解決這個問題?
謝謝!
好的,在我的應用程序中,我有一個DBAdapter類,它的工作很好。在主要活動中,我有一個變量this.dbAdapter
。我想與其他Activites共享這個變量,所以我不必在每個Activity中創建一個新的DBAdapter。在活動之間共享DBAdapter
這樣做的最好方法是?我應該做些什麼像intent.putExtra("DbAdapter", this.dbAdapter);
?或者還有另外一種方法可以解決這個問題?
謝謝!
與Android最佳集成的解決方案是create a Content Provider,並讓每個活動都使用適配器將查詢結果與您的小部件綁定。但是,只需在每個活動中創建一個新的DBAdapter即可,並確保在活動暫停時關閉所有資源。如果你需要在你的適配器中保持狀態,你可能做錯了什麼。
通過本頁面的回覆,我將在每個Activity上創建一個新的DBAdapter。 – Chiggins 2010-09-08 14:28:27
這絕對不是「最好的解決方案」......你不必創建一個「ContentProvider」,只是簡單地在多個活動中共享適配器...... – 2012-08-06 03:08:16
經過3年多的Android開發之後,我發現這對我來說是最好的解決方案。它與Android操作系統緊密相連,爲您免費提供許多精彩的東西。爲了使它更易於使用,我已經將它抽象出來,所以它比編寫數據庫的東西更容易,因爲你不需要編寫任何SQL:https://github.com/mitmel/SimpleContentProvider(它有點像ORM ,但不會創建大量的對象)。 – 2012-08-06 13:25:49
我想與其他Activites共享這個變量,所以我不必在每個> Activity中創建一個新的DBAdapter。
請不要這樣做。適配器與其活動和基礎數據緊密結合。你所要做的就是讓你的應用程序崩潰。
那麼當我想要的時候,什麼是一個很好的選擇? – Chiggins 2010-09-07 15:42:06
你確定它是某種CursorAdapter子類嗎?或者我只是不明白什麼? – 2010-09-07 22:09:23
@Chiggins:只需創建新的'DBAdapter'。 – CommonsWare 2010-09-07 22:34:02
無法回答你的問題,但我可以告訴你意圖的演員只支持幾種不同的類型,我不認爲DBAdapter就是其中之一。另外你最終只會傳遞靜態而不是參考。 – stealthcopter 2010-09-07 15:40:58
如果在onResume中調用open()並在onPause中調用close(),則不必擔心在每個Activity中創建新的DbAdapter對象。另外,我不是專家,但我想你會遇到使用你的方法的上下文問題。 – 2010-09-07 15:43:13
這是你的DBAdapter嗎?它是CursorAdapter的子類嗎?它只是你的自定義類來簡化與DB的工作?如果沒有這類信息,很難回答你的問題 – 2010-09-07 16:22:05