位置: 编程技术 - 正文
推荐整理分享[安卓]手机管家(十四)通讯卫士之工具类及listView的分批加载(安卓手机管家推荐),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:安卓手机管家在哪里打开,安卓手机管家推荐,安卓手机管家,安卓手机管家在哪里打开,安卓手机管家,安卓手机管家,安卓手机管家怎么关闭,安卓手机管家怎么关闭,内容如对您有帮助,希望把文章链接给更多的朋友!
每次进去都要加载list,导致耗时较高,体验不好
这时候的问题,子线程放在oncreate里,他是一个耗时操作,代码继续执行到list.size,此时子线程还未走完,adapter已经走完,size要获取他的counter,但这个时候list的初始是默认的空,声明的成员变量,线程里还没执行完,没有返回,这就会有空指针异常
必须等子线程执行完才能继续别的,需要一个handler发消息,发了消息再去执行adapter的初始化
每次进来有一个空白页面的时间,这是因为没有数据需要加载,可以加一个ProgressBar在list上这个也可以弄成一个工具,之前的都是工具都是静态方法,这里不同,可以写成一个类,里面有一个方法,这里是一个异步框架让pb可见;子线程加载数据,完成发消息给UI线程;pb不可见刷UI
utils下新建MyAsyncTask类
原activity里重新来过
系统本身也有个方法他的参数自己定,方法随之改变他实际上有一个线程池,支持多线程的,原理一样
为了让加载时间缩短一点,不要一上来就显示所有数据,而是最好一批一批的显示,拖动到一定时候再加载新的数据
此即listview的分批加载,看新闻的时候拖动一下显示个圈圈正在加载中
需要在dao里来个部分查找
需要监听listview,拖动完后能够重新加载 这里只用得上第一个方法,有3种状态SCROLL_STATE_IDLE:没有滑动了,拖到最后了;正是我们需要的
touch即是在滚动的状态,当放开后还在惯性滑动的即为fling
每次查询的位置要注意,在查询里要带上位置参数,dao里也应该有相应变化这时候往后拖,前面的就没有了,因为在async里的list之保存当前个item,每次都重新加载了应该能显示前面的
另一个问题,每次加载后都显示到最顶上post中的adapter应该只在第一次new出来,而不是每一次加载都要new一个,之后只需要通知一下,直接调用就好
OK,这才是listview最重要的部分,设计到listview都要考虑到大数据量的问题拦截功能的实现:需要service,manifest里要注册
另外这个service是否启动,应该给用户一个选择,在setting里设置,settingItem1的风
声明
找到初始化方法实现,不通过sp回显,和之前的显示号码归属地一模一样,抽成组合控件多方便,加几行代码就好destroy时要取消注册
实现短信拦截
之前有一个smsReceiver注册了一个静态的service
现在发短信的时候,两个service都启动了,一个动态,一个静态,当优先级相同时,动态注册先收到
如果想让静态注册先收到,把静态注册的优先级设成更高,并不是上限,而是int的最大, 0x7FFFFFFF = =Integer.MAX_VALUE;
拆分短信
需要通过dao对比,把dao声明、获取
再来完善拦截电话,需要监听电话
这里用到了反射和远程服务stub,需要包com.android.internal.telephony及ITelephony.aidl,他又需要一个包android.telephony下的NeighboringCellInfo文件
endcall是一个被隐藏起来的方法,不能随便就挂电话,所以需要远程调用,ibinder
在ServiceManager找到一个getService方法,他传的是string类的字节码
找到后用invoke调用,两个参数,第一个是object receiver,getclassloader是serviceManager里的静态方法,不需要对象,所以这里是null,
前面传的是TELEPHONY_SERVICE==phone这个参数,有了这个参数,就可以调用到ibinder,就可以转成一个本地类,这个本地类就可以用来挂断电话了,否则无法随便调用挂断电话的方法
权限
图片显示控件ImageView ImageView:显示图片的控件。常用属性:android:src------内容图片android:background------背景图片或颜色。图片永远充满容器。加载图片是系统自动会更具当
Activity的生命周期中onPause()方法和onSaveInstanceState(Bundle outState)方法比较 当用户在开启一个新activity时,当前的activity可能在内存中处于停止状态也可能由于新activity需要更多内存而被系统杀掉了,但不论怎样,当用户在新activ
BaseAdapter-最万能的适配器 1.四个方法1.getCount():这个是数据源的数据数量。2.getItem():获取数据集中与指定索引对应的数据项3.getItemId():获取点击下去的索引值4.getView():返回Item布局2.
标签: 安卓手机管家推荐
本文链接地址:https://www.jiuchutong.com/biancheng/383196.html 转载请保留说明!友情链接: 武汉网站建设