我想编写一个程序,该程序使用服务定期更新活动的文本视图。
我通过让ActivityA带有2个按钮来启动/停止我的服务。在服务中我运行一个定时器,每秒触发一次。从这里我需要启动并更新ActivityB上的文本视图,它目前只是一个计数器值。
我确信有更好的方法可以做到这一点,例如只使用一个活动,可能使用一个线程,但主要的设计考虑是即使我的活动被破坏也要运行服务(计数器值会改为去触发一些警报或文件写入而不是文本视图更新。
抱歉漫无目的。我发现android开发者资源提供了太多解决方案!
由于
本
答案 0 :(得分:1)
在服务中我运行一个每秒触发一次的计时器。
为什么呢?大多数Android设备都使用电池供电。电池永远不够大。您为用户提供了什么价值来证明您的CPU和RAM(以及电池寿命)的支出是合理的?
从这里我需要启动并更新ActivityB上的文本视图,它目前只是一个计数器值。
“这里”在哪里?
我确信有更好的方法可以做到这一点,例如只使用一项活动
我会这么认为。
可能使用线程
可能不是。
但主要的设计考虑因素是即使我的活动失败也要运行服务
这比您想象的要复杂得多。
(计数器值会触发一些警报或文件写入而不是文本视图更新)。
如果您的目标是在特定时间执行某项操作,请使用AlarmManager
。
我怀疑,无论你想要做什么,都有一种更好的方法,而不是你现在要走的路。不幸的是,由于我不知道你想要做什么,我提供更具体建议的能力有限。
答案 1 :(得分:0)
我认为你想做的事情最多只需要一个简单的AsyncTask。如果使用onProgressUpdate方法,则可以在每次在后台工作期间达到某个点时增加textview中的值。它还可以取消后台工作等。不需要完整的服务,线程工作。