IOS教程之Android UI主线程与子线程仓酷云
管理所有设备发生的事件比如屏幕旋转屏幕关闭或者一些其他的程序的控制逻辑也应该写在这里他的初始化函数是-(id)initWithNibName:(NSString*)nibNamebundle:(NSBundle*)nibBundle后面那个NibName是InterfaceBuilder里设计的界面现在IB已经集成到XCode里了一个Android程序默许情形下也只要一个Process,但一个Process下却能够有很多个Thread。在这么多Thread傍边,有一个Thread,我们称之为UIThread。UIThread在Android程序运转的时分就被创立,是一个Process傍边的主线程MainThread,次要是卖力把持UI界面的显现、更新和控件交互。在Android程序创立之初,一个Process出现的是单线程模子,一切的义务都在一个线程中运转。因而,我们以为,UIThread所实行的每个函数,所消费的工夫都应当是越短越好。而其他对照费时的事情(会见收集,下载数据,查询数据库等),都应当交由子线程往实行,以避免堵塞主线程。
那末,UIThread怎样和其他Thread一同事情呢?经常使用办法是:
出生一个主线程的Handler物件,当作Listener往让子线程能将讯息Push到主线程的MessageQuene里,以便触发主线程的handlerMessage()函数,让主线程晓得子线程的形态,并在主线程更新UI。如,在子线程的形态产生变更时,我们必要更新UI。假如在子线程中间接更新UI,一般会抛出上面的非常:
android.view.ViewRoot$CalledFromWrongThreadException:Onlytheoriginalthreadthatcreatedaviewhierarchycantouchitsviews.
意义是,没法在子线程中更新UI。为此,我们必要经由过程Handler物件,关照主线程UiThread来更新界面。
以下,起首创立一个Handler,来监听Message的事务:
privatefinalintUPDATE_UI=1;
privateHandlermHandler=newMainHandler();
privateclassMainHandlerextendsHandler{
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
caseUPDATE_UI:{
Log.i(“TTSDeamon”,“UPDATE_UI”);
showTextView.setText(editText.getText().toString());
ShowAnimation();
break;
}
default:
break;
}
}
}
或
privateHandlermHandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
caseUPDATE_UI:{
Log.i(“TTSDeamon”,“UPDATE_UI”);
showTextView.setText(editText.getText().toString());
ShowAnimation();
break;
}
default:
break;
}
}
}
当子线程的形态产生变更,则在子线程中收回Message,关照更新UI。
mHandler.sendEmptyMessageDelayed(UPDATE_UI,0)
很少去思考,没有去多问几个为什么。这是学习的大忌,我认识到了自己学习方法上的错误。孔子说,学而不思则罔,思而不学则殆。一点也没错,学和思是要结合的,这样才能进步。现在回想一下,我学到了什么?自己也无言以对了。 同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。 边吃零食边看Stanford的视频教程 在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。 从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以, 其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。 其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。 AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。 这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。 边吃零食边看Stanford的视频教程 自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉 我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。 中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者, 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。 特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地 每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。 有办法利用自己手头的电脑立刻开始这个美妙旅程的。 培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。 边吃零食边看Stanford的视频教程
页:
[1]
2