0

我目前正在开发一个非常简单的倒数计时器应用程序。我需要一些关于计时器正确架构的建议,它既可以在应用程序关闭时触发,也可以在应用程序打开时显示进度。

到目前为止我所拥有的是一个简单Handler的,它每 100 毫秒执行Runnable一次以更新进度条并像这样再次调用处理程序

// ...
// start the timer

tickHandler.postDelayed(runnable, 100);
// ...

private Handler tickHandler = new Handler();

private Runnable runnable = new Runnable(){
    @Override
    public void run() {
        if(tick()){
            tickHandler.postDelayed(this, 100);
        }
    }
};

Timer现在我希望即使应用程序关闭也能够运行。我首先想到了一个Service,但后来发现了AlarmManager一个接缝来完成这项工作并且更容易使用的类。但是,我不仅希望能够向通知中心发布通知,还希望应用程序再次打开并显示计时器已完成。

这可以用AlarmManager或我需要实现Service吗?Activity这个应用程序的体系结构在控制从哪里传递到Service更重要的是再传回来方面会是什么样子?

感谢您的任何提示!

4

1 回答 1

1

我猜,AlarmManager 完全符合您的要求:

取自Android AlarmManager

警报管理器适用于您希望应用程序代码在特定时间运行的情况,即使您的应用程序当前没有运行。

因此,您可以注册要在 Timer 完成后启动的 Intent,并向用户显示 Timer 已停止。因此,AlarmManager 应该可以解决问题!

顺便说一句:使用服务也可能有效,但会带来其他影响。例如,您的应用程序必须在启动阶段启动,这将禁止它安装在外部存储上。查看Android 安装位置

于 2013-07-09T13:40:04.723 回答