Android - 计时器和GPS跟踪。我应该使用服务吗?

时间:2012-03-12 22:07:46

标签: android android-service

我正在编写和应用程序,它有一个运行计时器(像手表一样每隔10秒更新一次用户界面),并通过GPS跟踪距离。预期的用例是让这个应用程序运行长达几个小时,因此它不应该被系统杀死。与您今天在市场上发现的许多正在运行的应用程序非常相似(虽然这不是我正在制作的)。

它不应该被系统杀死的要求指向我创建服务,但似乎将定时器和距离更新传达给UI,这通常是非常低效的。

在这里使用服务是最好的方法吗?如果是这样,我如何有效地处理UI上的时间和距离更新?或者还有另一种方法可以阻止系统杀死我的应用程序吗?

2 个答案:

答案 0 :(得分:1)

我已经确定我确实会使用某项服务,但只会启动它并在暂停活动时使用它。 Activity将当前状态传递给服务,它将处理所有需要完成的事情,并且当恢复时,活动将从服务返回状态并将其终止。

答案 1 :(得分:0)

您不需要服务,除非您要求发生某些事情,即使您的应用程序的活动被推到另一个活动后面,并且电话屏幕关闭时也是如此。在所有事情都相同的情况下,最好只让你的应用程序在恢复后巧妙地接收。

例如,如果你有一个秒表,你可以跟踪开始时间。当你的应用程序的活动暂停时,你就会停止一切。你不再计算了。但是当你恢复时,你知道开始时间,这样你就可以拿起正确的时间并继续更新用户界面。

只需创建一个计时器/线程来更新活动中的UI。在onResume()中启动它,然后在onPause()上停止。