一個Android程序可以由多個Activity和Servier組成,在這些程序組件之間傳遞數據的方法有以下幾種,每種方法都有其特定的使用途徑。
1、原始數據類型:
在Activity/Servier之間傳遞臨時性的原始數據,可以使用Intent的putExtras方法來傳遞數據。若傳遞的數據需要長久保存,則使用SharedPreference類來完成。
2、傳遞對象。
當在Activity/Servier之間傳遞不需要長久保存的對象時,可以使用以下幾種途徑:
(1)通過Application類,每個Android應用程序都有一個Application類。當你在程序的AndroidManifest.xml中給Application設定一個名字時,你的程序中就必須有一個Application的子類。這個Application子類會被Android自動實例化,并且是一個全家性的類,它的生命周期和程序的生命周期相同,你可以把一些全局性的對象保存在Application類中。Application類可以通過getApplication()獲得。
(2通過HashMap ofWeakReferences傳遞對象。當一個Activity需要向另外一個Activity傳遞對象時,可以使用一個關鍵字把對象存在一個HashMap中,并把這個關鍵字通過Internt的Extras發(fā)給目標Activity,目標Activity接到該關鍵字后使用該關鍵字把對象沖HashMap中取出。
在Activity/Service之間傳遞需要長久保存的對象時,可以使用以下的方式:
Application Preferences
Files
contentProviders
SQLite DB