setResult在onDestroy中不工作

2021-07-24 11:42:29 字數 532 閱讀 9899

在activtiy中的ondestory方法中呼叫setresult

intent data = new intent();  

setresult(result_ok, data)   

但是在onactivityresult中resultcode是0(result_canceled)

onactivityresult(int requestcode, int resultcode, intent data)   

說明setresult在ondestroy中不工作,放到onpause和onstop中也同樣不工作

按照官方文件的說法,不應該在ondestroy中處理任何資料,所以自然不應該在這裡setresult

但onpause中setresult是可以的,而且確實有效。

你遇到的情況可能是呼叫了finish(),然後由finish()觸發的onpause,這個時候setresult是沒用的。

因為finish()一被呼叫,就會確定回傳activityresult的值,所以之後的設定就不會被得到了。

android中setResult的呼叫時機

最近在做專案的過程中有需要用到返回值,但是由於需求比較複雜,感覺把setresult放到onstop中比較方便,但是發現在onstop中寫入setresult 和finish 之後,跟本就不會回傳值,後來又試了onpaulse和ondestroy均是不可以。後來發現是因為錯過了onactivityr...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...