您的位置:首页 > 移动开发 > Android开发

android的性能优化

2016-03-10 14:15 274 查看
高效的利用线程,在后台取消一些线程的操作

APP默认所有的操作都是在UI线程中进行的,导致程序的响应速度受到影响,严重的会产生卡顿,ANR甚至程序崩溃的现象。

最高效的解决办法是通过开辟子线程来进行耗时操作(如:网络请求,数据库操作或者复杂的计算等),通过AsyncTask或通过IntentService来创建后台操作。

如果选择使用IntentService,它会在需要的时候通过一个工作线程(Intent)来请求启动。

同时,使用IntentService会有以下几点限制:

*这个类不能向UI传递数据,如果要展示运行结果则需要通过Activity

 * 每次只能处理一个请求

 * 每个请求的处理过程都不能中断

2.保持响应防止发生ANR

通过子线程处理耗时操作能够避免用户操作时程序发生ANR(无响应).需要继承AsyncTask并且实现其中的doInBackground()方法。

也可以通过创建一个Thread类或者HandleThread类来进行线程操作,但这样也会导致程序响应速度变慢,因为默认的线程优先级与主线程的优先级是一样的,除非自己设置线程优先级.

3.在线程中初始化查询操作

当查询做操在后台进行时,数据的展示也不是即时的,但是可以通过CursorLoader对象来加快后台处理速度,而且不会影响用户与Activity之间的互动.

当使用这个对象后,你的APP会为ContentProvider初始化一个后台线程来处理数据,处理完后会把结果返回给调用了这个对象的Activity.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: