面试总结

一、android 动画有几种,有什么区别?

答:tween动画是修改传统的移动、放大、缩小以及透明度变化。frame动画是通过顺序播放相关的图片来实现动画。

二、listview缓存机制

答:当listview 有成千上万item时,只有可见的那一页的item是存在内存中,其他不可见的都存在recycler。第一次加载listview中item1时,convertview是空,显示过的都不为空存在recycler中。当item1滚出屏幕,并且一个新的项目从屏幕低端上来时,ListView再请求一个type1视图。convertView此时不是空值了,它的值是item1。你只需设定新的数据然后返回convertView,不必重新创建一个视图,省去了inflate和findViewById的时间,性能就得到了优化。

三、handler原理,简单概括。

答:handler通过sandMessage方法,发出一个消息,会把message放到MessageQueue队列中,而这个MessageQueue是属于某一个looper对象的,looper通过其绑定的Thread用looper.loop的方法循环读取队列中的message,并把message放到handler里面去通过disapatchmessage操作!

四、webview调用html和js代码。

答:js中调用java代码其实就记住一点,webview设置一个和js交互的接口(注意这里只是一般的意思,并不是java中接口的含义),这个接口其实是一个一般的类,同时为这个接口取一个别名.mWebView.addJavascriptInterface(new DemoJavaScriptInterface(),"demo");android调用js则在loadurl后面直接跟js方法。如下:mWebView.loadUrl("javascript:wave()");

五、两种刷新ui的方法。

答:通过handler,sendmessage来刷新ui .第二种,通过Activity.RunThreadUI(Runnable)方法,当需要更新UI的时候,把Runnable传递到RunThreadUI中实现立即刷新功能。

六、android进程间通信四种方式。

答、第一种通过uri来通信,比如说调起拨打电话等功能。第二种、通过content provider实现多应用,多进程之间的通信。第三种、通过广播来进行通信,broadcastReciver。第四种,AIDL服务。

七、service问题。

答:当service被启动时,onStartCommand方法将被回调。intentService 继承于service 当其被启动时,回调OnHandleIntent().intentService是通过Handler looper message 机制实现了多线程的操作,同时耗时的操作也可以放在其中执行,不会阐释ANR情况。两种启动方法,Onstart启动则不和启动者绑定,当启动者被销毁时,service还存在。Onbind开启时,是和启动者绑定在一起的。当启动者被销毁,则service也被关闭。当start之后再调用onbind,则直接调用onbind方法,若先bind 在onstart 则直接调用onstart方法,注意的是,oncreate方法只会被执行一次。

八、activity和fragment交互

答:第一种、在activity中定义handler,之后在fragment中onAttach()方法得到当前activity,调用setHandler方法。在fragment中定义handler实现交互。第二种,在fragment中定义回调事件,在activity中实现这个回调方法。第三种,通过广播来实现。

九、自定义控件需要重写哪些方法

答:三个构造函数,onMeasure(做计算控件大小),onLayout(设置控件在屏幕的位置),OnDraw(绘制view).

十、fragment懒加载实现

答:setUserVisibleHint方法,判断其如果可见则加载,不可见则不加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值