首先,这是一个计步器。
我的初始结构是服务将记录步骤计数器值记录到数据库中
然后,当应用对用户可见时,异步任务会不断更新显示给用户的值
我计划创建一个线程来定期调用异步任务
但是,在深入了解官方文档之后,“应该在UI线程中创建和调用异步任务”
现在的冲突是不应该阻止UI线程与定期调用异步任务
或者还有更好的方法来实施?
感谢您的任何意见。
答案 0 :(得分:1)
您需要从UI类(服务或活动)中的AsyncTask
派生。
在AsyncTask内部(如here所述),doInBackground
以异步方式运行,并且onPostExecute
在异步任务结束后在UI线程内运行。
只需将您的数据库操作放在doInBackground
中,并将此类内容放在onPostExecute
MyServiceClass.this.RunNextTask();
您的UI类中的RunNextTask
方法可以使用相同的AsyncTask
来启动下一个任务。