跨应用程序活动的Android计时器通知

时间:2013-08-27 18:58:42

标签: android timer popup

我有一个包含多个活动的应用程序,我有一个计时器,我在第一个活动中开始。问题是:

当我当前的活动可能与我启动计时器的活动不同时,如何在计时器关闭时获得对当前活动的引用。

我真正想要的是让一个计时器遍历我的所有活动,在它到期时显示一个警告对话框并做一些事情。但由于android的工作方式,这似乎是不可能的。有没有人有其他选择?

我已经尝试过了:

  • 使用异步任务访问ui线程,如果没有在主ui线程中创建,则不起作用。
  • 无法使用处理程序,我的计时器在另一个类

我还有其他选择吗?

编辑:

  • 我无法更改任何活动代码,当有人将其插入项目时,计时器应该足够分离以便运行。
  • 从计时器工作线程获取当前活动的实例应该可以工作,因为它可以让我在ui线程中运行东西。

1 个答案:

答案 0 :(得分:0)

将您的计时器实施为singleton

然后,实现observer模式:

创建一个接口(可能称为AlertListener),该接口由您希望收到警报的每个Activity实现。这个接口应该有一个方法,比如onTimerExpired()。当计时器到期时,此方法应该执行活动所需的任何操作。

在你的timer类中,还保持对当前AlertListener的引用和一个名为“setCurrentActivity(AlertListener currentActivity)”的方法。

在onResume或每个活动的其他方法中,调用MyTimer.setCurrentActivity(this)。

当计时器熄灭时,请调用currentActivity.onTimerExpired()。