2011-05-20 100 views
1

我在启动locacionListener服务的Locator.java类中启动活动。该活动将位置写入数据库。我想知道当我移动到下一个屏幕(活动)时,职位将继续写入数据库,或者我需要返回Locator.java继续写作。当我最小化应用程序时也是如此。在活动之间保持locationListener活动

我有关于使用服务的想法,但我想确定我需要它。

回答

2

只要服务启动,并且在设备上提供足够的资源,服务就会继续在后台运行。切换活动,最小化或关闭应用程序不会改变这一点。这取决于你正式停止服务。

捕获位置更新并将它们存储在数据库中的业务逻辑应该在服务中实现,而不是在活动中实现。 (该活动可用于控制服务的状态(停止 - 启动),并显示数据库中的数据,但您的位置更新/存储在数据库逻辑中的大部分应该从服务中触发。

你可以检查你的Android设备上运行的服务(设置 - 应用程序 - 运行服务)。你应该看到你的服务,以及它的运行时间。

根据你的要求,一个简单的服务不会削减它如果你例如你也想捕获位置更新并将它们存储在数据库中,而设备正在睡眠,那么你需要看看WakefullintentService

+0

如此有效,当我开始应用程序线程写入数据库将停止存储位置。据我所知,线程将结束,因为此线程需要事件onLocationChanged工作,位置不会更新,直到我回到该位置活动。这是否恰当?谢谢ddewaele! – Dayerman 2011-05-20 09:15:56