书到用时方恨少!
《Android编程权威指南》去年翻了半个月,仅仅看了前几章。
产出是: 自己搭建了Android的开发环境、照着书写了几个Hello World的App,并发布到Android真机上、而最有纪念意义的就是产出了3篇博客:
随后一年,这本Android开发的宝典落了一层灰!
最近,手游项目中要用到Android SDK接入的技能,才恍然发现需要补补Android的基础知识,随即翻看了3篇博客,而后打开尘封已久的宝典,又“挑灯夜战”:晚上下班后,匆匆扒两口饭就翻书学习、记笔记;第二天在工作中用于实践。 自我感觉,挺好的。
有目的的学习,威力无穷也!
本文就Android多线程进行笔记整理之。
Android系统中,主线程(UI线程)不能访问网络,如果违规这么干,则app会很有可能Crash的,我遇到了多次,故多线程是必须要掌握的一项Android技能。
可通过如下代码定义AsyncTask,其中@Override的函数是AsyncTask预定义好的,直接重载即可。
public class aaa extends AsyncTask<P1, P2, P3> //P1是Input参数,P2是更新用,P3是Output参数
{
@Override P3 doInBackground(P1) //子线程的核心逻辑函数
@Override OnPostExecute(P3); //线程处理完毕后收尾函数,可访问主线程
@Override OnProgressUpdate(P2); //可访问主线程,一般用于如更新ProgressBar状态等
}
取消AsyncTask用Cancel(bool)
在主线程中,启动线程用这行代码:
new aaa().Execute().
HandlerThread是Android系统提供的主要后台线程, 相对简单的AsyncTask,HandlerThread涉及到了Message、Looper、Handler、Queue概念。
Looper扮演着一个Handler和消息队列之间通讯桥梁的角色。程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列。 Looper也把消息队列里的消息广播给所有的Handler,Handler接受到消息后调用handleMessage进行处理。Looper.myLooper();获得当前的Looper
Looper.getMainLooper () 获得UI线程的Lopper
activity.runOnUiThread(new Runnable()
{
@Override public void run(){ // TODO Auto-generated method stub
int i = 30; textView.setText(""+i+" s");
} } });
一路东北, 转眼二十年了,最后一次回眸长春,是2004...
中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...
记得非典—2003年那会,周末一到,大学宿舍里面,吃完...
GPU这...
2023年,三年疫情过后第一个春天,我开始了骑行: 空...
在VR应用中,有一个相对简单的虚拟现实体验,那...
对程序员而言,写的代码用源码管理系统管理起来,非常方便...
2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...
上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...
不用插件,js脚本显示星号密码
以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...
今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...