startActivityForResult源码分析
来源:互联网 发布:热敏标签打印软件 编辑:程序博客网 时间:2024/04/30 02:13
直接上源码,不废话。
@Overridepublic void startActivityForResult(Intent intent, int requestCode) { // If this was started from a Fragment we've already checked the upper 16 bits were not in // use, and then repurposed them for the Fragment's index. if (!mStartedActivityFromFragment) { if (requestCode != -1 && (requestCode&0xffff0000) != 0) { throw new IllegalArgumentException("Can only use lower 16 bits for requestCode"); } } super.startActivityForResult(intent, requestCode);}没啥,首先判断是否是从Fragment发起的,最后一句继续跟踪。
public void startActivityForResult(Intent intent, int requestCode, @Nullable Bundle options) { if (mParent == null) { Instrumentation.ActivityResult ar = mInstrumentation.execStartActivity( this, mMainThread.getApplicationThread(), mToken, this, intent, requestCode, options); if (ar != null) { mMainThread.sendActivityResult( mToken, mEmbeddedID, requestCode, ar.getResultCode(), ar.getResultData()); } if (requestCode >= 0) { // If this start is requesting a result, we can avoid making // the activity visible until the result is received. Setting // this code during onCreate(Bundle savedInstanceState) or onResume() will keep the // activity hidden during this time, to avoid flickering. // This can only be done when a result is requested because // that guarantees we will get information back when the // activity is finished, no matter what happens to it. mStartedActivity = true; } cancelInputsAndStartExitTransition(options); // TODO Consider clearing/flushing other event sources and events for child windows. } else { if (options != null) { mParent.startActivityFromChild(this, intent, requestCode, options); } else { // Note we want to go through this method for compatibility with // existing applications that may have overridden it. mParent.startActivityFromChild(this, intent, requestCode); } }}首先判断有没有parentactivity,这个就是主要是处理tabactivity的情况,咱现在只看parent==null的情况。
第一句: Instrumentation.ActivityResult ar = mInstrumentation.execStartActivity( this, mMainThread.getApplicationThread(), mToken, this, intent, requestCode, options);这里面所有问题我会发时间一一搞明白,时间就会比较拖延了,未完待续。
0 0
- startActivityForResult源码分析
- startActivityForResult & onActivityResult 流程分析
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult()
- startActivityForResult()
- startActivityForResult
- startActivityForResult()
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- startActivityForResult
- js隐藏table 列
- Linux 文件内容查看命令
- Leetcode-remove-duplicates-from-sorted-list
- 脏纱窗不用拆!小媳妇只用一张旧报纸,奇迹就发生了······
- Android之CalendarView日历视图
- startActivityForResult源码分析
- Time类解析
- Android的消息机制
- viewpager轮播图的实现(简洁易懂)
- Python用户存储加密及登录验证系统(乞丐版)
- IOS_函数
- 在低版本中让按钮显示阴影
- Android基本知识
- Linux上利用nginx域名转发