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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

调用startActivityForResult后,onActivityResult立刻回调

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调用startActivityForResult后,onActivityResult立刻回调 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**今天用華為手機測試APP的時候遇到了這個問題。A activity 跳轉到B activity,并在B activity執行返回,Aactivity 執行回調代碼 **

//A activity 的跳轉Intent intent = new Intent(A.this, B.class);startActivityForResult(intent, Contacts.INDEX_TWO);Log.e(TAG, "開始跳轉");//A activity 的回調@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);Log.e(TAG, "得到回調");} //B activity帶參數返回Log.e(TAG, "帶參數返回");Intent intent = getIntent();Bundle data = new Bundle();data.putString("regionId", node.getId() + "");intent.putExtras(data);B.this.setResult(RESPONSE_CODE, intent);B.this.finish();

執行了上面的代碼,輸出的時候 得到的結果

12-24 07:20:35.508 13694-13694/com.example.waterdevice E/A: 開始跳轉 12-24 07:20:35.508 13694-13694/com.example.waterdevice E/A: 得到回調

打印的Log日志,說明A activity啟動有返回值參數的Activiy的時候,就已經執行了回調的方法,所以就根本得不到我們想要的返回值。
后來在網上查詢了相關信息,最后查到的原因是我們在AndroidManifest.xml配置文件中 在Activity注冊上設置了一句代碼,這句代碼就是
android:launchMode=“singleTask”。
這個代碼導致2個activity都在村不同的棧里面,在android中不同的棧之間不能進行數據通信。
所以在跳轉的activity(B activity)取消這句代碼就可以正常訪問了

寫該博客的作用,是留個備注,防止以后再次遇到該問題的時候,在此感謝CSDN的各位前輩的資料信息,讓我能解決這個問題

總結

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

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