解決onActivityResult無效

第一種情況就是在執行startActivityForResult的時候緊跟着onActivityResult()方法也被執行,我們打log就會發現在onActivityResult()方法中resultCode參數一直返回0,出現這種情況就是跟我們的Activity加載模式有關的,即在AndroidManifest.xml中設置activity的時候添加了android:launchMode這個屬性,在android SDK中有說明Activity被設置爲單例模式時onActivityResult()這個無效,也就是android:launchMode="singleTask"和android:launchMode="singleInstance"都會導致無效

第二種情況是startActivityForResult(intent, 0);這個方法中第二個參數,當我們設置這個參數小於0時就會發現onActivityResult()方法就沒有響應的android SDK中有提到這個參數必須是大於或者等於0的

第三種情況在TabHost的子Activity中startActivityForResult調用其他Activity時候遭遇到onActivityResult方法不響應的問題解決辦法如下:

1.通過父Activity啓動其他Activity;

2.實現父Activity的onActivityResult方法,將該處接收到的請求轉發給當前活動的子Activity;

3.自定義一個轉發接口用來實現第2步中的轉發功能;

4.所有SubActivity中實現第3步接口中的onTabActivityResult方法用來接收返回信息;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章