黑马程序员之手机卫士第六天

1,火箭游离在activity,activity不论开启还是关闭,不影响小火箭代码逻辑,火箭写在服务中
2,火箭挂载载窗体上AddressService


3,喷射火焰,两张图片做轮训切换展示
4,火箭可以被拖拽

5,火箭拖拽到指定区域的时候放手(抬起)才可以被发射
6,尾气动画效果

1,黑名单数据库创建
三个字段(_id 自增长字段 phone 黑名单号码  mode 拦截类型)
创建表的sql语句
create table blacknumber (_id integer primary key autoincrement , phone varchar(20), mode varchar(5));
结合项目,去创建数据库,以及相应的表
2,crud增删改查
android上junit测试,配置instrumentation,uses-library
3,数据适配器的模板代码
listView优化
1:复用convertView
2:复用ViewHolder让其减少findViewById()次数
3:static ViewHolder
4:分页算法
ViewHolder  viewHolder = null;
if(convertView == null){
viewHolder = new ViewHolder();
convertView = View.inflate();
viewHolder.text1 = convertView.findViewById(R.id.text1);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)convertView.getTag();
}
viewHolder.text1.setText("文本内容");


static class ViewHolder{
TextView text1;
}

4,数据库分页查询,逆序排列
按照_id逆序,查询后20条数据(limit 中第一位代表逆序的索引值,第二位代表查询的条目个数)
select * from blacknumber order by _id desc limit ?,20;


5,加载更多的触发条件
1.监听状态改变
2.滚动到最底部,最后一个listView的条目可见
3.滚动状态发生改变 滚动------>停止(空闲)

加载下一页数据完成后,需要添加到上一页数据的最后面 20 40 60 80 100

6,listView列表添加数据的过程
1.向数据库中插入一条数据
2.向结合中添加一条数据(最顶端)
3.通知数据适配器刷新

7,listView列表移除数据的过程
1.从数据库中删除一条数据
2.从结合中删除一条数据
3.通知数据适配器刷新

8,
  拦截短信
短信在接受的时候,广播发送,监听广播接受者,拦截短信(有序)
将广播的优先级级别提高到最高 (1000)

  拦截电话
有电话拨入,处于响铃状态,响铃状态通过代码去挂断电话(aidl,反射),拦截电话
挂断电话号码的方法,放置在了aidl文件中名称为endCall

在此处去查看TelePhoneManager源码,去查找获取ITelephony对象的方法

ServiceManager此类android对开发者隐藏,所以不能去直接调用其方法,所以需要反射调用
ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));


//1,获取ServiceManager字节码文件
Class

你可能感兴趣的:(黑马程序员之手机卫士第六天)