Acitivity在singleTask載入模式下的資料傳遞處理
在Android開發中,我們通常要在不同頁面之間傳遞資料,比如要從ActivityA啟動ActivityB並傳遞資料到ActivityB裡面,這個很簡單,用Intetn加Bundle就可以了。不過有時候如果您需要讓後臺執行的Activity回到前臺並傳遞資料就有些問題。
通常,我們通過Intent啟到Activity的時候,就算存在一個相同的正在執行的Activity,系統都會建立一個新的Activity例項並顯示出來。此時我們最好就是讓Activity不啟動多次,通過在AndroidManifest.xml配置activity的載入方式(launchMode)以實現單任務模式(android:launchmode
=
"singleTask"
)。singleTask的時候,啟到一個ActivityA,如果系統已經存在ActivityA例項,系統就會直接啟動ActivityA。然而這個時候,系統不會再呼叫通常情況下我們處理請求資料的onCreate方法,而是呼叫onNewIntent方法,如下所示:
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
//處理資料,data=getIntent().get.....
}
不過有的時候,系統可能會隨時殺掉執行在後臺的 Activity ,那麼系統啟動ActivityA時還會呼叫 onCreate 方法,而不呼叫 onNewIntent 方法。這個時候又怎麼處理呢?通常就是在 onCreate 和 onNewIntent 方法中呼叫同一個處理資料的方法,這樣就可以解決問題。
注意:
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
//處理資料,data=getIntent().get.....
}
在上面這個方法中,如果沒有呼叫setIntent(intent),則getIntent()獲取的資料將不是你所期望的。所以最好是先呼叫setIntent(intent),這樣再呼叫getIntent()獲取資料就沒問題了。
相關文章
- 返回Acitivity時傳遞資料
- 下載資料的處理
- jquery的ajax傳遞資料過程中的資料處理jQuery
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- 生信公共資料庫下載處理資料庫
- MyBatis傳入多個引數,傳入陣列和列表資料的處理MyBatis陣列
- 強大的CSS:濾鏡和混合模式處理的圖片如何上傳下載?CSS模式
- 模型訓練:資料預處理和預載入模型
- php傳送超大資料處理PHP大資料
- Angular路由——在路由時候傳遞資料Angular路由
- chan中傳遞map資料,傳遞的是引用
- 簡單的在兩個activity中傳遞資料
- Xamarin Essentials教程資料處理傳輸資料
- GoldenGate初始載入過程變化資料處理Go
- VUE 傳遞資料Vue
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- git進入vim模式的處理Git模式
- Flutter 中的資料傳遞Flutter
- 父子元件的資料傳遞元件
- redis-cli在shell下執行命令處理資料Redis
- 傳統的資料處理方式能否應對大資料?大資料
- postman(五):在不同介面之間傳遞資料Postman
- 使用URLSearchParams處理 fetch 傳送的資料
- Win9x下程式間的資料傳遞 (轉)
- C# 在採集資料時的驗證與登入處理C#
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 向上向下傳遞資料
- 網路遊戲資料傳輸:粘包的處理遊戲
- 淺入深出Vue:子元件與資料傳遞Vue元件
- sqlserver 針對預處理sql傳入引數的處理方式SQLServer
- echarts3.0非同步資料載入之series樣式處理EchartsS3非同步
- 功能強大的核磁資料處理軟體:MestReNova mac /win下載Mac
- iview Tree資料格式問題,無限遞迴樹處理資料View遞迴
- Apache Hudi 如何加速傳統的批處理模式?Apache模式
- RAC資料庫大量載入資料造成歸檔日誌空間滿處理資料庫
- SpringMVC入門學習---資料的處理SpringMVC
- 如何給js的onclick事件處理函式傳遞引數JS事件函式