利用onNewIntent避免Activity之間的跳轉傳值多次實體化

onNewIntent

需要注意的是:

1、通過Intent啓到一個Activity的時候,就算已經存在一個相同的正在運行的Activity,系統也會創建一個新的Activity實例。爲了不讓Activity實例化多次,我們需要通過在AndroidManifest.xml配置啓動方式。

2、launchMode爲singleTask的時候,通過Intent跳到一個Activity,如果系統已經存在一個實例,系統就會將請求發送到這個實例上,但這個時候----------系統就不會再調用onCreate方法,而是調用onNewIntent方法。

能用到的地方是A-->B-->C-->A,此時onActivityResult就有些複雜了。 例如:

1、點擊 設置密碼(A),跳到 設置密碼頁面(B),輸入密碼;

2、點擊完成 跳到 確定密碼頁面(C),輸入密碼,設置成功後返回到設置頁面(A)並帶回一個狀態,此時(A)中的“設置密碼”變成“修改密碼”;

3、用戶設置過密碼後,此頁面就變成了“修改密碼”的選項

4、C跳到A,這個A我們要用以前棧中已有的,不能再去新建一個A的實例,所以需要在AndroidManifest.xml配置activity的啓動方式以實現單任務模式。每步的跳轉中,我們不能finish掉上一步Activity,否則按返回鍵時,用戶體驗不好。。。。這時就需要onNewIntent了。當然這只是我的一個思路。

首先在AndroidManifest.xml配置activity的啓動方式以實現單任務模式

先看第二個SecondActivity,它需要把值傳到FirstActivity。

再來看FirstActivity

此時沒有走onCreat方法,但是爲了以防萬一,最好在onCreat方法裏也寫上操作,因爲後臺運行的Activity可能在內存過高時被系統殺掉,這時就會走onCreat方法。

原文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章