我目前正在开发一个非常简单的倒数计时器应用程序。我需要一些关于计时器正确架构的建议,它既可以在应用程序关闭时触发,也可以在应用程序打开时显示进度。
到目前为止我所拥有的是一个简单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
更重要的是再传回来方面会是什么样子?
感谢您的任何提示!