在Fragment使用startActivityForResult()方法返回的resultCode不正确
2016-08-07 23:14
423 查看
我在项目中使用的是一个Activity中带有4个Fragment,就相当于TabLayout和viewPager的级联使用那种形式,作为底部的Tab导航,然后在其中的一个Fragment中还带了一个Frament。我就是在这个Fragment中调用的startActivityForResult()方法,发现调用后,返回的resultCode,并不是我设置返回的resultCode。后来发现原来是把
Intent intent = new Intent();
setResult(RESULT_OK, intent);
这两行代码放到了onDestroy()里面,如下:
@Override
protected voidonDestroy() {
Intent intent =newIntent();
setResult(RESULT_OK, intent);
super.onDestroy();
}
导致返回的resultCode错误,而且如果返回一些捆绑的数据,也是为null的。我把这两行代码放到按钮的监听方法onClick()里边,返回的resultCode就正确了。发现上面的原因还是因为是在火车上,我使用一个类来存储数据,调用其静态方法,存储到静态变量里边,结果发现存储不成功,而且在下次才显示出存储成功。原来在onDestroy()方法中调用了此静态方法,由此联想到Fragment中调用startActivityForResult()方法返回的resultCode不正确的原因可能是这个。发现果然如此。
我使用的是android.support.v4.app.Fragment;包下的Fragment
先前在网上查询了很久也没找到原因,由此看来也需要偶尔在某些特殊的地方敲敲代码呢
。觉得有用的博友可以点赞哦。
Intent intent = new Intent();
setResult(RESULT_OK, intent);
这两行代码放到了onDestroy()里面,如下:
@Override
protected voidonDestroy() {
Intent intent =newIntent();
setResult(RESULT_OK, intent);
super.onDestroy();
}
导致返回的resultCode错误,而且如果返回一些捆绑的数据,也是为null的。我把这两行代码放到按钮的监听方法onClick()里边,返回的resultCode就正确了。发现上面的原因还是因为是在火车上,我使用一个类来存储数据,调用其静态方法,存储到静态变量里边,结果发现存储不成功,而且在下次才显示出存储成功。原来在onDestroy()方法中调用了此静态方法,由此联想到Fragment中调用startActivityForResult()方法返回的resultCode不正确的原因可能是这个。发现果然如此。
我使用的是android.support.v4.app.Fragment;包下的Fragment
先前在网上查询了很久也没找到原因,由此看来也需要偶尔在某些特殊的地方敲敲代码呢
。觉得有用的博友可以点赞哦。
相关文章推荐
- Fragment startActivityForResult,接收requestCode方法
- Android开发 Fragment中调用startActivityForResult返回错误的requestCode
- fragment各种情况下的生命周期、状态保存startActivityForResult是哪个类的方法,在什么情况下使用?
- 在Fragment中使用StartActivityForResult,RequestCode错乱的问题
- 关于在Fragment中使用startActivityForResult();方法后onActivityResult()未被调用的解决方案
- 从Activity中返回数据--startActivityForResult的使用..
- 关于Android中startActivityForResult()方法的详细使用
- 解决Android中Fragment调用startactivityforresult不能返回结果的问题
- android startActivityForResult的使用方法介绍
- android.app.Activity类中的startActivityForResult()方法、onActivityResult()方法、setResult()方法的使用
- 使用startActivityForResult方法(转)
- Android中Activity数据返回(使用startActivityForResult)
- startActivityForResult ,无法接收到返回的resultCode的原因
- 用 startActivityForResult 方法启动 Activity 的简单使用
- Fragment的startActivityForResult方法
- 关于startActivityForResult()方法的使用
- startActivityForResult 方法 返回数据到前一个 Activity
- 关于StartActivityForResult方法的使用
- Android中返回数据到前一个Activity — startActivityForResult方法
- Fragment中使用 startActivityForResult