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()獲取資料就沒問題了。
相關文章
- 下載資料的處理
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- 如何在HarmonyOS NEXT中處理頁面間的資料傳遞?
- 生信公共資料庫下載處理資料庫
- 強大的CSS:濾鏡和混合模式處理的圖片如何上傳下載?CSS模式
- 模型訓練:資料預處理和預載入模型
- 使用URLSearchParams處理 fetch 傳送的資料
- Xamarin Essentials教程資料處理傳輸資料
- git進入vim模式的處理Git模式
- Angular路由——在路由時候傳遞資料Angular路由
- chan中傳遞map資料,傳遞的是引用
- 傳統的資料處理方式能否應對大資料?大資料
- 父子元件的資料傳遞元件
- Flutter 中的資料傳遞Flutter
- VUE 傳遞資料Vue
- SpringMVC入門學習---資料的處理SpringMVC
- postman(五):在不同介面之間傳遞資料Postman
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- Apache Hudi 如何加速傳統的批處理模式?Apache模式
- 功能強大的核磁資料處理軟體:MestReNova mac /win下載Mac
- echarts3.0非同步資料載入之series樣式處理EchartsS3非同步
- Windows下批處理分享:透過WinSCP實現SFTP傳輸資料WindowsFTP
- iview Tree資料格式問題,無限遞迴樹處理資料View遞迴
- 在`Laravel`中使用`cursor`來查詢並處理資料 (輕鬆處理千萬級的資料)Laravel
- 在Laravel中使用cursor來查詢並處理資料 (輕鬆處理千萬級的資料)Laravel
- Sqoop匯入資料異常處理OOP
- 向上向下傳遞資料
- 淺入深出Vue:子元件與資料傳遞Vue元件
- 特徵工程之資料預處理(下)特徵工程
- Python資料處理(二):處理 Excel 資料PythonExcel
- 利用ASP傳送和接收XML資料的處理方法XML
- Serverless 在大規模資料處理的實踐Server
- Python在資料處理方面的優勢Python
- vue元件之間的資料傳遞Vue元件
- vuejs傳遞資料的方法有哪些VueJS
- Python 資料處理庫 pandas 入門教程Python
- 拿到登入資料以後如何處理?
- JDBC連線批量處理資料入庫JDBC