欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

android面试题之七

来源: 开发者 投稿于  被查看 3139 次 评论:37

android面试题之七


之间的关系。

获取当前线程中的对象,用来从存放中取出,再有进行的分发和处理

消息队列:用来存放通过发布的消息,通常附属于某一个创建它的线程,可以通过得到当前线程的消息队列

:可以发布或者处理一个消息或者操作一个,通过发布消息,消息将只会发送到与它关联的消息队列,然也只能处理该消息队列中的消息

:是和消息队列之间通讯桥梁,程序组件首先通过把消息传递给把消息放入队列。也把消息队列里的消息广播给所有的接受到消息后调用进行处理

:消息的类型,在类中的方法中得到单个的消息进行处理在单线程模型下,为了线程通信问题,设计了一个消息队列,线程间可以通过该并结合组件进行信息交换。下面将对它们进行分别介绍:

消息,理解为线程间交流的信息,处理数据后台线程需要更新,则发送内含一些数据给线程。

处理者,是的主要处理者,负责的发送,内容的执行处理。后台线程就是通过传进来的对象引用来。而使用,需要该类的方法,它是处理这些的操作内容,例如。通常需要子类化来实现方法。

消息队列,用来存放通过发布的消息,按照先进先出执行。

都会有一个对应的会向通过两种方法发送消息:。这两种消息都会插在队尾并按先进先出执行。但通过这两种方法发送的消息执行的方式略有不同:通过发送的是一个对象会被函数处理;而通过方法发送的是一个对象,则会自己执行。

是每条线程里的的管家。没有,而会自动替主线程线程建立,但在子线程里并没有建立。所以调用得到的主线程的不为,但调用得到当前线程的就有可能为。对于子线程使用提供了正确的使用方法:这个机制的大概流程:

方法运行开始后,循环地按照接收顺序取出里面的非

一开始里面的都是的。当,该函数里面设置了那个对象的属性是当前的对象。随后取出了那个,则调用该指向的函数对进行处理。在方法里,如何处理则由用户指定,三个判断,优先级从高到低:

里面的,一个实现了接口的对象,其中函数做处理工作;

里面的指向的一个实现了接口的对象,由其进行处理;

处理消息对象对应的类继承并实现了其中函数,通过这个实现的函数处理消息。

方法是优先级最低的!

处理完该后,则设置该,以便回收!

判断对象里面的对象是属于哪条线程的,则由该线程来执行!

对象的构造函数的参数为空,则为当前所在线程的

得到的是主线程的对象,得到的是当前线程的对象。

的启动模式有哪些?是什么含义?

(默认)、

:它们都可以多次实例化,可位于任意的栈中,被启动者和启动者位于同一中(除非

:当前实例如果在栈顶,就不新建实例,调用其。如不在栈顶,则新建实例。模式,可用来解决栈顶多个重复相同的的问题。

:都是只创建一个实例的。

有关的启动方式有哪些?其含义?





FLAG_ACTIVITY_SINGLE_TOP
如果设置,当这个Activity位于历史stack的顶端运行时,不再启动一个新的

FLAG_ACTIVITY_BROUGHT_TO_FRONT
这个标志一般不是由程序代码设置的,如在launchMode中设置singleTask模式时系统帮你设定。




FLAG_ACTIVITY_FORWARD_RESULT
如果设置,并且这个Intent用于从一个存在的Activity启动一个新的Activity,那么,这个作为答复目标的Activity将会传到这个新的Activity中。这种方式下,新的Activity可以调用setResult(int),并且这个结果值将发送给那个作为答复目标的 Activity。

FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
这个标志一般不由应用程序代码设置,如果这个Activity是从历史记录里启动的(常按HOME键),那么,系统会帮你设定。





FLAG_ACTIVITY_NO_HISTORY
如果设置,新的Activity将不再历史stack中保留。用户一离开它,这个Activity就关闭了。这也可以通过设置noHistory特性。

FLAG_ACTIVITY_NO_USER_ACTION
如果设置,作为新启动的Activity进入前台时,这个标志将在Activity暂停之前阻止从最前方的Activity回调的onUserLeaveHint()。





的优化方案

、如果自定义适配器,那么在方法中要考虑方法传进来的参数是否为,如果为就创建并返回,如果不为则直接使用。在这个方法中尽可能少创建
、给设置()),传入一个对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。
、如果需要显示的很多,就要考虑分页加载。比如一共要显示条或者更多的时候,我们可以考虑先加载条,等用户拉到列表底部的时候再去加载接下来的条。

四十、程序运行时权限与文件系统权限的区别

相关频道:

用户评论