好好复习,干翻BAT
VIEW的事件分发机制?
事件分发机制的介绍参考:http://blog.csdn.net/guolin_blog/article/details/9097463和http://blog.csdn.net/guolin_blog/article/details/9153747
主要回答上dispatchTouchEvent方法,不管是view还是viewGroup都是用过dispatchTouchEvent来进行事件分发,viewGroup中比较有一个onInterceptTouchEvent方法用来控制是否把当前的事件传给viewGroup中的childView,还是自己直接消化掉。view中有的dispatchTouchEvent方法中会执行onTouch和onTouchEvent方法,一个控件如果同时监听了onTouch事件和onClick事件会先执行onTouch方法,如果onTouch方法返回的是true那么这个事件就被消化掉了,onClick方法不会再被执行,如果onTouch方法返回的是false则继续执行onTouchEvent方法,onTouchEvent方法中判断当前是何种Action,如果是Action_up则执行onClick方法。如onTouch->onTouchEvent(case Action_down,break)->onTouch->onTouchEvent(case Action_up,onCick)。当然如果一个控件是非CLICKABLE的,在Action_down的时候进入onTouch方法,之后进入onTouchEvent方法返回false,无法进行下一个Action的事件处理,导致整个onTouch方法执行一次就结束。
适配器(Adapter)模式?
广播的权限问题?
通过自定义权限来实现,发送广播时只有具有一定权限的Receiver可以接收该广播,自定义权限参照:http://blog.csdn.net/aduovip/article/details/8257178
自定义广播权限这个真心是没用过,水平太浅,大家参考:http://blog.csdn.net/javensun/article/details/7334230
Activity生命周期?
牢记这张图,并且:
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
android基本功,相关文章很多。Service方法是不是运行在主线程里面?
是的!!运行在主线程里面!!!onCreate、onDestory!!!
分不清可以看看这里:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=274508&page=1#pid2722704