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