目录 我要给出的建议将分为三个不同的等级: 入门级、 中级和进阶级: 入门级(这是些你一定会经常用在你app开发中的建议) 1. 用ARC管理内存 2. 在正确的地方使用reuseIdentifier 3. 尽可能使Views透明 4. 避免庞大的XIB 5. 不要block主线程 6. 在Imag ...
分类:
移动开发 时间:
2016-05-15 23:59:24
阅读次数:
615
1、对于耗时的操作(如上传下载、读写数据库等),为了不阻塞主线程,我们的一般方法是开启“子线程”。如果需要更新UI,则需要使用handler 2、如果耗时的操作太多,那么我们需要开启太多的子线程,这就会给系统带来巨大的负担,随之也会带来性能方面的问题。在这种情况下我们就可以考虑使用类AsyncTas ...
分类:
其他好文 时间:
2016-05-15 19:46:22
阅读次数:
211
1.join 运行结果 2. SetDaemon //从运行结果可以看到,Daemon Thread并没有运行到自然死亡,而是在前台mian线程结束后被死亡了。 3.sleep 运行结果 从结果中可以看到在主线程sleep的3秒中,new Thread已经完成运行。 4.yield 运行结果 从运行 ...
分类:
编程语言 时间:
2016-05-15 18:19:31
阅读次数:
227
在Android系统中,类Handler主要有如下两个作用。 在新启动的线程中发送消息。 在主线程中获取、处理消息。 类Handler在实现上述作用时,首先在新启动的线程中发送消息,然后在主线程中获取并处理消息。但 这个过程涉及一个问题:新启动的线程何时发送消息呢?主线程何时去获取并处理消息呢?这个 ...
分类:
移动开发 时间:
2016-05-15 16:44:44
阅读次数:
212
Handler简介 Android 中规定,只允许UI线程修改Activity中的UI组件。当程序第一次启动的时候,就启动了一条主线程(Main Thread),通常被称为UI线程。如果新启动的线程想要改变界面组件里的属性值,则要借助Handler的消息传递机制。 程序实例: //布局文件仅含有一个 ...
分类:
其他好文 时间:
2016-05-15 16:38:04
阅读次数:
184
一个服务不是一个单独的线程。Service和其他组件一样,默认情况下,Service中的所有代码都是运行在主线程中。 在android中,为什么不使用后台线程而使用Service? 有3大要点: 1、Service可以放在独立的进程中,所以更安全; 2、使用Service可以依赖现有的binder机 ...
分类:
移动开发 时间:
2016-05-15 12:27:00
阅读次数:
205
BackgroundWorder控件: BackgroundWorker控件顾名思义,是执行后台工作的控件,准确来说,是在非主线程上执行操作的控件。该类型定义在System.ComponentModel命名空间,该控件的使用非常简单,只要在工具库中把该控件拖动到界面就可以了。 比较重要的属性: Ca ...
分类:
其他好文 时间:
2016-05-13 20:38:11
阅读次数:
193
我们都知道,android的UI操作并不是线程安全的,因此如果多个线程同时操作UI的话,会导致线程安全问题,因此android制订了一条规则,只允许UI线程(即主线程)进行UI操作,而且由于一些耗时操作例如下载,网络访问等,如果放在主线程执行,这样可能会抛出一个异常 ANR异常(Application
Not Responding)将会阻塞UI线程,从而会导致程序无响应。因此我们会将一些耗时操...
分类:
其他好文 时间:
2016-05-13 15:05:55
阅读次数:
243
进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。 进程本身不执行代码, 执行代码的是线程。 开启一个线程,就是创建一个线程对象即可。 线程默认情况下都是前台线程。 要把所有的前台线程执行完后,程序才会退出。 进程里默认的线程叫主线程或 ...
分类:
编程语言 时间:
2016-05-13 11:28:18
阅读次数:
197
本篇文章主要讲解iOS中动画的使用。 1、Core Animation,核心动画。 核心动画执行过程都是在后台操作的,不会阻塞主线程。Core Animation是直接作用在CALayer上的,并非UIView。 CAAnimation 是所有 Core Animation 动画类的父类,CAAni ...
分类:
移动开发 时间:
2016-05-13 09:13:30
阅读次数:
276