Android 开发面试中,面试过最喜欢问那些问题?,android程序设计基础教程

  • 底部菜单栏 切换——Fragment运用

  • 主页(显示新闻列表)——ListView

  • 设置(退出应用、退出登录、清空缓存)——Activity管理、SharePreference

  • 我的(账号安全、新闻收藏夹)——SQLite

  • 新闻列表下拉、上滑实现刷新——自定义ListView

  • 逐条收藏新闻、删除新闻——SharePreference

  • 仿UI界面——各类控件运用

  • 点击查看新闻详情 —— WebView

  • 用户界面更换头像功能——Android运行时权限、多媒体、Content Provide

2、简单说一下Activity生命周期?

下图是Activity状态转换图(注意图中,方框内执行的是状态转换的过程,并不是状态,状态如前述,只有三种:RUNNING / PAUSED / STOPPED。)

Android 开发面试中,面试过最喜欢问那些问题?,android程序设计基础教程

3、简述一下RecyclerView缓存机制?

RecyclerView在Android的应用上可以说已经取代了listview,其灵活,组装式设置,多缓存机制可以适应多列表在Android开发中各种各样的需求。

对于RecyclerView的缓存机制一直都想稍微的屡下思路,简单点说RecyclerView对比listview缓存机制中就是多了两层缓存的支持,listview是两级缓存,RecyclerView为四级缓存(当然在大部分情况下是三级缓存)。

4、在一个listview里每个item中都有一个动画(gif)播放的view,当我点击item中的button时动画(gif)播放。当有动画播放时滑动listview,偶尔会发生item错位的事件。原因是什么?

这是item复用的问题,由于异步加载导致图片错位

5、当Activity有多个Handler的时候,Message消息是否会混乱?怎么样区分当前消息由哪个Handler处理?

不会混乱,哪Android 开发面试中,面试过最喜欢问那些问题?,android程序设计基础教程
个Handler发送的消息,到时候也是这个handler处理。在发送消息的时候,会绑定target,这个target就是Handler本身,当需要handler调用dispatchMessage(msg)处理消息的时候,这个Handler就是发送消息时绑定的handler。

无论用哪一种方法发送消息,最终都会调用enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis)来发送消息

private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) {

msg.target = this;

if (mAsynchronous) {

msg.setAsynchronous(true);

}

return queue.enqueueMessage(msg, uptimeMillis);

}

这里的this,就是当前的handler。在来看需要Handler处理消息的时候,取的是哪一个handler,下面贴出主要源码。

public static void loop() {

for (;

上一篇:pubsub-js实现消息订阅与发布


下一篇:QT 快捷键