日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在非activity类调用startActivityForResult

發布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在非activity类调用startActivityForResult 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于這個問題,今天折騰了一下午,不是說我不懂得怎么調用,而是我用了看似正確的調用方式,而其實這是一個坑。

我用了下面這種方式:

((Activity) mContext).startActivityForResult

用這種方式是正確的,必須要將context轉換為Activity。

但是由于我是在一個特殊的場景里面使用的,導致activity的onActivityResult沒有被回調。

?

接下來說說我的場景:

我在MainActivity里面創建了一個DialogActivity,在DialogActivity里面調用工具類utils的start()方法,該方法里面的語句就是((Activity) mContext).startActivityForResult,而DialogActivity里面的onActivityResult沒有被回調。

?

調試了半天,發現DialogActivity傳進utils的start方法的context是屬于MainActivity的,因為DialogActivity在MainActivity里面啟動的。這么說來,相當于是MainActivity調用了startActivityForResult,應該是MainAcvtivity的onActivityResult會被回調,可是結果也不會。

?

原來MainAcvtivity與要啟動的Activity之間還隔著一個DialogActivity,返回的時候是返回到DialogActivity的,因此MainActivity的onActivityResult也不會被回調。

?

解決方法,不要傳context去調用,傳activity

總結:((Activity) mContext).startActivityForResult,context屬于哪個Activity,那么便是哪個activity調用該方法,并且想要onActivityResult獲得回調,兩個Activity之間不能隔著其他Activity。

?

尊重勞動成果,轉載請標明出處:http://www.cnblogs.com/tangZH/p/8575836.html

轉載于:https://www.cnblogs.com/tangZH/p/8575836.html

總結

以上是生活随笔為你收集整理的在非activity类调用startActivityForResult的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。