论坛首页 移动开发技术论坛

Activity 是什么?(sundy深入浅出)之四大组件和Intent

浏览 1930 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-07  

写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。

一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):

 

1、Acitivy实际是如何实例化的 ?

在ContextImpl类里可以看到

 mMainThread.getInstrumentation().execStartActivity(
            getOuterContext(), mMainThread.getApplicationThread(), null, null, intent, -1);

在Instrumentation类中execStartActivity方法中

int result = ActivityManagerNative.getDefault()
                .startActivity(whoThread, intent,
                        intent.resolveTypeIfNeeded(who.getContentResolver()),
                        null, 0, token, target != null ? target.mEmbeddedID : null,
                        requestCode, false, false);

activity的实例化是由虚拟机来操作的

更准确的答案参照:

http://www.cnblogs.com/chinabinner/archive/2011/11/19/2255374.html

 

2、Activity的生命周期是如何注册和监控的 ?

使用的观察者模式。有一个类叫 ActivityMonitor,是一个观察者。


3、Activity跟Binder的关系是什么?

从宏观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPCBinder就是为了Activity通讯而设计的一个轻量级的IPC框架。

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics