Touch事件or手机卫士面试题整理回答(二)

自定义控件

1. Touch事件的传递机制

顶级View->父View->子View,不处理逆向返回

OnInterceptTouchEvent()返回值控制Touch是否向下传递. true中断事件,false不中断事件。

onTouchEvent() 返回值决定否处理事件。True消耗事件,False不处理事件向上传递。

2. 轮播动画的实现原理

ViewPageTextView组合实现图片和标题的效果

ViewPage设置setOnPageChangeListener监听变换图片和对应文字内容。

Handler发送handler.sendEmptyMessageDelayed(0, 200)延时消息,实现自动变换图片。

ViewPage设置setOnTouchListener清空handler Message消息队列,停止图片轮播

3.自定义ViewPage组合控件实现原理

继承ViewGroup容器类MyViewPage 动态向容器添加控件。也可以是布局组合控件等等

重写onMeasure()设置控件的宽高,子控件必须手动设置
getChildAt(i).measure(widthMeasureSpec,heightMeasureSpec);

重写onLoayout()设置控件的绘制的位置。这里动态设置子控件绘制成字状,
getChildAt(i).layout(getWidth() * i, 0, getWidth() * (i + 1), getHeight());

定义GestureDetector设置手势滑动回调监听

重写onTouchEvent(MotionEvent)委托GestureDetector手势识别器来处理滑动触摸事件, onScroll(...)的回调。设置View scrollBy()水平方向滑动的距离。scrollTo(...)设置滑动到的具体位置

定义Scroller,控制滑动滑动效果。

重写 computeScroll()View在滑动时不断回调该方法,控制更新Page页面页面

定义OnPageChangeListener接口,设置页面改变回调监听onPageChange(...)

整理手机卫士功能点的实现思路

1. 手机防盗功能设置原理

SharedPreferences保存设置密码。是否进行过Guride导向页设置。SIM卡串号。

ViewPage+Fragement实现滑动替换页面逻辑,getSystemService(Context.TELEPHONY_SERVICE);获取到系统电话发素

获取到手机sim卡串号,绑定手机号码。 注册广播。电话卡改变发送短信个指定安全联系人。

注册短信广播。intent.getExtras().get("pdus");得到不断发送过来的消息。截取短信内容实现对相应指令功能的操作。

2. 电话拦截功能

ListView自定义可改变mDataAdapter
AlartDialog添加黑名单,设置拦截模式
AsyncTask异步加载查询黑名单。扉页查询黑名单
通过是否开启一个服务,获取到电话号码,挂断电话,并销毁通话记录。

3.软件管家

ViewUtils注解事件,注解控件问题,

通过 context.getPackageManager()获取PackageManage 手机安装的所有软件管理器。并自定义Adapter``ListViwe展示软件列表。

ListView设置setOnItemClickListener监听弹出PopupWindow事项设置相应的Intent来实现对该列表项软件的操作

4.进程管理。

获取到系统服务 得到运行的进程信息

  1. // 通过AcitvityManager 取得想应的进程信息;
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    // 获取到包管理器
    PackageManager pm = context.getPackageManager();
    // 获取系统运行的程序信息
    List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses();

AsyncTask异步加载, ListView展示进程列表。并分辨是系统进程or用户进程。

通过ActivityManager通过killBackgroundProcesses(...)杀死用户进程。

为了防止Service后台线程被杀死。动态注册registerReceiver一个广播,重启杀死Service

Touch事件or手机卫士面试题整理回答(二)的更多相关文章

  1. 【IT笔试面试题整理】二叉搜索树转换为双向链表

    [试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...

  2. iOS开发面试题整理(二)

    8 类别的作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改. 并且如果类别和原来类中的方法产生名称冲突,则类别 ...

  3. php面试题整理(二)

    索引,desc 和explain unset只是删除了变量名

  4. python面试题整理(二)

    1.进程,线程,协程定义,有什么区别 进程是操作系统分配资源的最小单位,一个进程对应一块CPU 线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至 ...

  5. Android Touch事件之二:dispatchTouchEvent()和onTouchEvent()篇

    2015-12-01 15:06:14 Android Touch事件第一篇:Touch事件在父ViewGroup和子View之间的传递简单分析了事件的传递流程,这次深入了解下dispatchTouc ...

  6. myBatis+Spring+SpringMVC框架面试题整理

    myBatis+Spring+SpringMVC框架面试题整理(一) 2018年09月06日 13:36:01 新新许愿树 阅读数 14034更多 分类专栏: SSM   版权声明:本文为博主原创文章 ...

  7. 简易封装手机浏览器touch事件

    做手机开发时候,简单想用一些动作,如touchLeft,touchRight等, 使用其他库文件就要加载很多不必要的东西,流量的浪费 今天简单写了封装touch的库,简单的监听一些逻辑 onTouch ...

  8. 手机touch事件及参数【转】(自己懒得写了,找了一篇摘过来)

    [html5构建触屏网站]之touch事件 前言 一个触屏网站到底和传统的pc端网站有什么区别呢,交互方式的改变首当其冲.例如我们常用的click事件,在触屏设备下是如此无力. 手机上的大部分交互都是 ...

  9. 手机触摸touch事件

    1.Touch事件简介 pc上的web页面鼠 标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如 ipho ...

随机推荐

  1. Android 再按一次退出程序

    实现代码: private long exitTime = 0; /** * 捕捉返回事件按钮 * * 因为此 Activity 继承 TabActivity 用 onKeyDown 无响应,所以改用 ...

  2. Curl之Post Json

    curl Post Json $ curl -i -X POST -H "'Content-type':'application/x-www-form-urlencoded', 'chars ...

  3. base64dll

    继上次的dll学习后,想开发个软件,连接到百度的云存储服务器,上传文件.发现要算秘钥,在网上找了到了hmac-sha1,base64的源码,发现有些是c++写的,有些是c写的一起写到一个文件里有些麻烦 ...

  4. platform机制

    最近在看SPI.I2C这样简单点的总线驱动程 序,从Linux2.6起,内核引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver.现在Linux中 大部分的 ...

  5. cloudstack安装篇3-SELinux配置、NTP时间同步、配置ClouStack软件库

    一.SELinux配置 为了让CloudStack正常工作,我们必须将SELinux设置为permissive.需要在当前系统运行状态下和启动后都能够生效,进行以下配置. 在系统运行状态下的将SELi ...

  6. 使用yum和iso镜像离线升级RedHat系统

    创建一个用于挂载iso镜像的目录.由于这个目录不能在挂载时自动创建,所以需要以root身份先创建一个目录.命令: mkdir mount_dir 以root身份把iso镜像挂载到上一步创建的目录上.命 ...

  7. pm 2.5

    定陵</a></div><div class="staaqi"><span class="label pmsmall" ...

  8. localstorage本地存储

    前段时间项目上用到了本地存储,所以研究看了下,在这做下笔记. 本地存储是一个window的一个属性,分别是localStorage和sessionStorage,两者用法完全相同,只不过一个是sess ...

  9. 理解C++中函数的返回

    连续几年的C++程序设计课教学中,学生中总有人要求为他们单独解释函数的返回(return)究竟是什么意思.各种书中都会详讲返回值的问题,而学生们掌握的难点却是在返回至何处执行.本文试图通过对一般函数及 ...

  10. 14周事情总结-机器人-大数据hadoop

    14周随着考试的进行,其他该准备的事情也在并行的处理着,考试内容这里不赘述了 首先说下,关于机器人大赛的事情,受益颇多,机器人的制作需要机械和电控两方面 昨天参与舵机的测试,遇到的问题:舵机不动 排查 ...