【Android】Fragment跳转Activity时携带数据

简介: 在网上你可以看到很多Fragment都是用接口回调来携带数据跳转到Activity。我觉得好麻烦,于是你们可以用我下面的方法而我们可以直接使用下面这个方法:

在网上你可以看到很多Fragment都是用接口回调来携带数据跳转到Activity。

我觉得好麻烦,于是你们可以用我下面的方法

而我们可以直接使用下面这个方法:


protected void startActivity(Bundle bundle, Class<?> cls) {
  Intent intent = new Intent(getActivity(), cls);
  intent.putExtras(bundle);
  //resolveActivity是Intent类里面方法
  if (intent.resolveActivity(getActivity().getPackageManager()) != null)
  //那这里面是什么呢?
    startActivity(intent);
}


点进去会发现这个地方才是具体实现的startActivity的地方。


//此类继承了Fragment类,重写Fragment类的startActivity方法
@Override
public void startActivity(Intent intent) {
    if (intent == null) {
        PageLog.e("[startActivity failed]: intent == null");
        return;
    }
    if (CoreConfig.getContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
        try {
            //再点进这个父类的方法,是什么呢?
            super.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
            PageLog.e(e);
        }
    } else {
        PageLog.e("[resolveActivity failed]: " + (intent.getComponent() != null ? intent.getComponent() : intent.getAction()) + " do not register in manifest");
    }
}


此处就是最普通的startActivity方法了,上面的都是在这个startActivity方法的基础上进行"加工"。


//位于Fragment类中
public void startActivity(Intent intent) {
    this.startActivity(intent, (Bundle)null);
}
目录
相关文章
|
22天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
70 6
|
23天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
24 3
|
23天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
18 3
|
23天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
17 0
|
1月前
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
53 0
|
6月前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
1186 54
|
Android开发
Android 中Fragment和Activity之间的通信
Android 中Fragment和Activity之间的通信
65 0
|
Android开发
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
161 0
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?