2

您好,我有一个运行服务的 android 应用程序。从该服务和其他系统(such as GPS)开始 20 分钟后,我希望它自动停止。我想我需要为此使用计时器?

有人可以举个例子说明我怎么做吗?

4

2 回答 2

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();
}
于 2009-06-29T12:49:35.560 回答
1

我会用AlarmManager. 设置单次警报以在 20 分钟内响起。BroadcastReceiver在收到警报的standalone中,调用stopService()

我的其中一本书中有一篇博客文章和一些示例代码AlarmManager,尽管它们都涵盖了“cron场景”,您希望在启动时获得控制并设置重复警报。

于 2009-06-29T13:30:29.923 回答