2016-08-30 18:22:33

前提:我们的APP要兼容Api level 11以前的,所以必须用FragmentActivity

1、对于Fragment的,我们很多时候都会在Activity中通过如下方式使用:

Fragment是Android3.0以后才引入的东西,为了向下兼容,在support v4包中加入了FragmentActivity,FragmentActivity和Activity的区别是:FragmentActivity中只能使用getSupportFragmentManager(),而Activity中可以直接使用getFragmentManager();

2、具体看看Fragment中调用startActivityForResult()和mActivity.startActivityForResult()的区别(mActivity是一个FragmentActivity对象):

代码来自support-v4:23.2.1,因为不同的support包中,该方法的实现不太一样,这里的源码分析以23.2.1为准。

1处的代码,要求我们传入的requestCode必须小于2^16;

2处调用了另外一个方法,注意看3处的代码,此处将调用startActivityForResult方法的fragment缓存起来,对应的key就是requestIndex,mPendingFragmentActivityResults是一个SparseArrayCompat<String>对象。

3、onActivityResult方法

看代码可以发现,取出缓存中的Fragment,然后调用该Fragment的onActivityResult()方法。注意看这个方法的注释,分发收到的result给对应的Fragment。

Fragment的startActivityForResult和Activity的startActivityForResult的区别的更多相关文章

  1. Activity使用startActivityForResult时出现onActivityResult()不执行的问题

    通过使用 startActivityForResult() 和 onActivityResult() 方法可以在Activity之间传递或接收参数.但有时候我们会遭遇onActivityResult( ...

  2. [转]Fragment跳转至Activity或者Fragment

    1.Fragment跳转至Activity 从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的acti ...

  3. Android系列之Fragment(一)----Fragment加载到Activity当中

    Android上 的界面展示都是通过Activity实现的,Activity实在是太常用了.但是Activity也有它的局限性,同样的界面在手机上显示可能很好看, 在平板上就未必了,因为平板的屏幕非常 ...

  4. Android Fragment用法之给Activity创建事件回调

    在某些案例中,可能需要Fragment与Activity共享事件.在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法.当Activity通过接口接受 ...

  5. Android Fragment向另一个Activity传值

    1.Fragment内: Intent intent=new Intent(getActivity(),ShowDataActivity.class); //参数1:Fragment所依存的Activ ...

  6. Android从Fragment跳转到Activity

    代码改变世界 Android从Fragment跳转到Activity Intent intent = new Intent(getActivity(), LoginActivity.class); s ...

  7. android 点击图片从Fragment跳转到activity

    android 点击图片从Fragment跳转到activity 在Fragment里编写 public View onCreateView(@NonNull LayoutInflater infla ...

  8. Activity和View的区别:

    Activity和View的区别: activity相当于控制部分,view相当于显示部分.两者之间是多对多的关系,所有东西必须用view来显示.  viewGroup继承自view,实现了ViewM ...

  9. Fragment跳转至Activity片段随笔

    首先需要了解Fragment的生命周期 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, ...

随机推荐

  1. 数据源增量处理(Delta Proess)三大属性:Recod Mode、Delta Type、Serialization

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. 利用scrapy-splash爬取JS生成的动态页面

    目前,为了加速页面的加载速度,页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无 ...

  3. C#引用C++开发的DLL

    C#语言使用方便,入门门槛较代,上手容易,并且语法与C,java有很类似的地方,IDE做的也好,通用性好,是MS下一代开发的主要力量.但是其开源代码较少,类库不是十分完美,在架构方面还有一些需要做的工 ...

  4. scss/css 中添加ie hack

    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { /* IE10+ specific styles ...

  5. JSP隐藏过长字段

    <div class="objDiv" title="${fof.fundName }">                        <c ...

  6. Evolutionary Computing: Assignments

    Assignment 1: TSP Travel Salesman Problem Assignment 2: TTP Travel Thief Problem The goal is to find ...

  7. Easy Sysprep更新日志-skyfree大神

    Easy Sysprep更新日志: Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&t ...

  8. Tomcat APR & Linux Optimization

    一.简介 APR(Apache portable Run-time libraries)模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高 ...

  9. 【LeetCode】#1 Two Sum

    [Question] Given an array of integers, return indices of the two numbers such that they add up to a ...

  10. easy ui datagrid 让某行复选框不能选中

    //百度查找出来的 onLoadSuccess: function(data){//加载完毕后获取所有的checkbox遍历             if (data.rows.length > ...