本文目录一览:
- 1、Activity的启动流程
- 2、startActivityForResult()方法接收两个参数,第一个是Intent,第二个是...
- 3、Activity中包含Fragment时startActivityForResult()
- 4、如何从activity返回数据
Activity的启动流程
那么启动的Activity有两种情况:第一种是启动同进程内的Activity; 第二种是启动不同进程的根Activity,比如在桌面点击启动,就是启动不同进程的Activity。
Activity启动流程(从Launcher开始):第一阶段: Launcher通知AMS要启动新的Activity(在Launcher所在的进程执行)第二阶段:AMS先校验一下Activity的正确性,如果正确的话,会暂存一下Activity的信息。
startActivity 的大概流程就是由应用进程 IPC 调用到 AMS,AMS 处理完这些工作后再 IPC 回到应用进程,创建 Activity 的实例,回调 Activity 的生命周期。
startActivityForResult()方法接收两个参数,第一个是Intent,第二个是...
Intent 功能太强大了,比较常用的就是Activity (Service)之间的数据传递。
相关源码:调用 startActivity 或 startActivityForResult 来启动Activity。
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。 除了第一个,都是想办法把每一个Activity都结束掉,间接达到目的。 但是这样做同样不完美。
(1) 要激活一个新的Activity,或者让一个现有的Activity执行新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。
第二个页面启动第三个页面的时候用startActivityForResult()方法,如果不明白怎么用,你先百度一下。第二个页面要实现onActivityResult()方法,第三个页面结束时要设置setResult来结束。
在启动另外一个Activity的时候,有两种方法,一种是直接使用startActivity,另外一种就是使用startActivityForResult。
Activity中包含Fragment时startActivityForResult()
分析 :启动 Activity 时,我们一般会设置一个 requestCode 以便在开启了多个具有返回值的 Activity 时进行识别以做出不同的响应对策。
从官方的解释中可以看出Fragment中的startActivityForResult方法是调用的是Activity中的,而FragmentActivity中的startActivityForResult方法是对Activity中的startActivityForResult进行了重写。
REQUEST_CODE);这种写法接收返回的结果要在fragment中重写onActivityResult()方法; //从activity中跳转 getActivity().startActivityForResult(intent, REQUEST_CODE);这种写法要在Activity中重写onActivityResult()方法。
fragment是附着在activity上的,不存在单独跳转关系,直接用切换。
如何从activity返回数据
1、对于 onRetainCustomNonConfigurationInstance 保存的数据,之后我们在重建的 Activity 的 onCreate 方法中,可以通过 getLastCustomNonConfigurationInstance 来直接获得之前保存的数据。
2、public String curFragmentTag = ;.../*在fragment的管理类中,我们要实现这部操作,而他的主要作用是,当D这个activity回传数据到 这里碎片管理器下面的fragnment中时,往往会经过这个管理器中的onActivityResult的方法。
3、除此之外,onActivityResult()方法中的第二个参数resultCode还有系统自带的一些参数,也就是说,如果我们启动的intent是隐式意图,那么可以用Activity类中RESULT_OK来表示操作已经顺利结束。
4、能。在fragment里面直接startActivityForResult,然后在fragment的onActivityResult里面接收。切记千万不要fragment.getActivity().startForResult,这样会执行activity的onActivityResult。
5、android 有个全局 singleton 的组件,叫lication ,所有的acitivty service 共享一个实例。