调用startActivityForResult后,onActivityResult立刻回调
生活随笔
收集整理的這篇文章主要介紹了
调用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立刻回调的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发 Intent传递参
- 下一篇: Android Realm相关操作