在我的应用程序中,我需要大约每3分钟从服务器提取数据,为此应用程序在显示特定活动时启动新线程然后此线程只是拉数据然后睡觉然后拉等...但我发现这对CPU使用效率不高,所以我的问题是:
从服务器执行后台定期数据提取的CPU使用率方面,最佳解决方案是什么? 它应该是AlarmManager,Thread还是其他技术。
答案 0 :(得分:1)
如果只在活动处于活动状态时才进行数据提取,则应使用处理程序机制从UI线程安排定期任务,如下所示: http://developer.android.com/resources/articles/timed-ui-updates.html 这一切都基于这些功能:
mHandler.postDelayed(mUpdateTimeTask, 100);
其中mHandler是您的处理程序,mUpdateTimeTask是一个Runnable,包含在给定时间段后执行的操作(在示例中为100 ms)。 注意mUpdateTimeTask是在UI线程中执行的,因此您必须初始化并启动自己的线程。为简单地完成此任务,Android提供了AsyncTask:http://developer.android.com/resources/articles/painless-threading.html