問題描述:當(dāng)用戶在一個活動中輸入了一些信息后,然后又啟用了另外一個活動饭于,則剛剛輸入信息的活動則進入了停止?fàn)顟B(tài),當(dāng)系統(tǒng)內(nèi)存不足時掰吕,系統(tǒng)會回收掉停止?fàn)顟B(tài)的活動,當(dāng)用戶點擊back鍵返回剛剛的活動時殖熟,由于活動重新創(chuàng)建故用戶輸入的信息就會丟失斑响,為解決這一問題菱属,以下方法解決:
使用Bundle對象存儲數(shù)據(jù)
Activity中提供了一個onSaveInstance()回調(diào)方法舰罚,這個方法的執(zhí)行時機是在活動被回收之前調(diào)用。protected void onSaveInstance(Bundle outState)
Bundle對象和Intent對象存儲數(shù)據(jù)方法相似沸停,Bundle對象存儲數(shù)據(jù)時:使用putString()
方法存儲字符串昭卓,使用putInt()
方法存儲整型數(shù)據(jù),以此類推候醒。存儲數(shù)據(jù)是根據(jù)鍵值對存儲的。
從Bundle對象中取出數(shù)據(jù)
Activity活動被回收倒淫,當(dāng)再開啟活動時則是被重新創(chuàng)建,會調(diào)用onCreate()
方法protected void onCreate(Bundle saveInstanceState)
,onCreate()方法中攜帶了一個參數(shù)是Bundle對象运翼,存儲的數(shù)據(jù)就存在了這個Bundle對象中兴枯,取出并賦值就可以了血淌。