【问题标题】:Access an handler in service from extern activity从外部活动访问服务中的处理程序
【发布时间】:2010-06-23 07:38:16
【问题描述】:

我在正在运行的服务中设置了一个处理程序,它每 X 次执行一次操作。

现在,经过一段时间后,我想从该服务启动一个活动,并且在活动的 onCreate 中,我想访问该服务的处理程序(它启动了活动)并停止它的计划操作

 (mHandler.removeCallbacks(someTask)); 

知道如何访问服务中的处理程序吗?

服务和被调用的活动在同一个进程中。

谢谢,

射线。

【问题讨论】:

  • 我想做一些静态类,带有一个标志并通过服务和活动调整该标志..但这是个好主意吗?不是最 OOP 的事情;P

标签: android


【解决方案1】:

我在一个正在运行的服务中设置了一个 每 X 执行一次操作的处理程序 时间。

为什么? Service 中不需要 Handler

如果“每 X 次”意味着您有一个繁忙的循环,或者正在使用 TimerTask 或其他什么,请考虑 AlarmManager 是否可能是更好的解决方案。

现在过了一段时间我想开始 该服务的活动

如果前台有你的其他活动,这很奇怪,但可以接受。但是,如果您的计划是在用户玩游戏、打电话、发短信或其他任何活动时打断用户,如果您无法证明这种干扰是正当的,用户可能会在市场上给您一星评级。

知道我将如何访问处理程序 哪个在服务中?

简单:摆脱Handler,您不必担心停止它。 Service 中不需要 Handler

【讨论】:

  • 我的服务中需要一个处理程序,因为我想要安排时间任务。而且我不会用任何即将发生的活动打断用户。那不是目的。 “而且你不必担心阻止我”,为什么不呢?我必须停止它,因为否则计划任务将继续工作。(而且我确实需要该服务在没有我所做的那些计划任务的情况下工作)
  • "摆脱 Handler,你不必担心停止它。你不需要在 Service 中的 Handler。"那还有什么?
  • 我还在很多地方读到过使用处理程序计时比使用 TimerTask 更好,有什么理由吗?想听听您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多