您好我有一个运行服务的Android应用程序。从该服务和其他系统(such as GPS
)开始20分钟后,我希望它自动停止。我想我需要使用Timer吗?
有人可以展示我如何做到这一点的例子吗?
答案 0 :(得分:2)
也许你甚至不需要计时器。只需在成员变量中存储[System.currentTimeMillis()
](http://developer.android.com/reference/java/lang/System.html#currentTimeMillis(),并在达到超时时[stopSelf
](http://developer.android.com/reference/android/app/Service.html#stopSelf()您的服务,即可跟踪服务的启动时间。
例如,在服务的繁忙部分中包含以下内容:
if(System.currentTimeMillis() - TIMEOUT > startTime) {
stopSelf();
}
答案 1 :(得分:1)
我会使用AlarmManager
。设置单次触发警报,在20分钟内完成。在收到闹钟的独立BroadcastReceiver
中,请致电stopService()
。
我有一个blog post和一些涵盖AlarmManager
的{{3}},但它们都涵盖了“cron
场景”,您希望在启动时获得控制权并设置重复警报。