Android面试小计

1.Activity生命周期



2.Service生命周期

使用context.startService() 启动Service

其生命周期为context.startService() ->onCreate()- >onStart()->Service running-->context.stopService() | ->onDestroy() ->Service stop 

所以调用startService的生命周期为:onCreate --> onStart(可多次调用) --> onDestroy

对于bindService()启动Service会经历:
context.bindService()->onCreate()->onBind()->Service running-->onUnbind() -> onDestroy() ->Service stop

所以调用bindService的生命周期为:onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。


3.请说明.9的4边作用

顶部:黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域 
左边:黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域   
右边:黑色条位置向左覆盖的区域表示图片纵向显示内容的区域 
底部:黑色条位置向上覆盖的区域表示图片横向显示内容的区域 


4.Activity如何传输数据

基于消息的传输

最标准的Activity之间的数据传输,就是通过Intent的Extra对象。

基于外部存储的传输

Preference、sqlite

基于Service的传输

Service是提供了直连机制,调用的Activity,可以通过 bindService 方法,与目标Service建立一条数据通路,拿到 IBinder 。这样,通过Android提供的IPC模型,就可以进行远程方法的调用和数据的传输了。 

利用Application传输

在Activity中,可以通过 getApplication 接口,随时获得Application对象的引用,用于实现一些全局对象的存储,和处理,真是最合适不过的地方了。


5.浅onInterceptTouchEventonTouchEventonTouch

1.       down事件首先会传递到onInterceptTouchEvent()方法

2.       如果该ViewGrouponInterceptTouchEvent()在接收到down事件处理完成之后return false,那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最终的目标viewonTouchEvent()处理。

3.       如果该ViewGrouponInterceptTouchEvent()在接收到down事件处理完成之后return true,那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样传递给该ViewGrouponTouchEvent()处理,注意,目标view将接收不到任何事件。

4.       如果最终需要处理事件的viewonTouchEvent()返回了false,那么该事件将被传递至其上一层次的viewonTouchEvent()处理。

5.       如果最终需要处理事件的view onTouchEvent()返回了true,那么后续事件将可以继续传递给该viewonTouchEvent()处理。

6.       如果是子View的 onTouchEvent() 返回了true的话,在ViewGroup中的onInterceptTouchEvent()就能截取到move 和up了。如果是当前ViewGroup中的onTouchEvent()最终消费了此次的事件,那不onInterceptTouchEvent()就不能截取到move和up事件了。


6.Activity的启动模式?并描述。


7.2个线程如何确保同步?谁先谁后?


8.签名不一样,包名一样的APK是否可以同时存在?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值