线程或服务

时间:2010-01-16 00:33:14

标签: android

我需要让gps一直在我的应用程序中运行,但是我不知道是否最好把它像活动中的一个线程一样抛出,或者如果我应该创建一个服务然后在服务中,抛出螺纹

任何人都可以帮助我?谢谢!!

P.D:对不起我的英文


我的回答不在于我的应用程序如何工作,因为我希望我的应用程序转到后台并且它可以工作。 我将尝试解释我的应用程序包含的内容:它有一个活动用gps启动一个服务,gps中的位置与文件中的其他位置进行比较。当条件为真时,它会启动另一个运行多媒体播放器的服务。

因此,如果我正在观看其他应用程序,或者我将设备放在口袋中,我希望我的应用程序继续运行。

3 个答案:

答案 0 :(得分:1)

我想您的答案将取决于您的应用程序的工作方式。如果您希望在按下主页按钮或后退按钮将应用程序推到后台后接收GPS数据,那么您应该将其放入服务中,因为服务的生命周期与活动的生命周期不同。

如果仅在您的应用程序中需要GPS数据并且您不需要GPS数据应用程序已关闭,那么线程是更好的选择,正如Kavitesh所提到的,线程是一种更快更容易的方法

答案 1 :(得分:0)

你能解释一下吗?因为我们需要知道您的应用程序要做什么。当您的应用程序始终可见时,您不需要线程或服务,您应该实现一个侦听器并将其注册到LocationManager。

当你的应用程序应该转到后台时,你应该实现一个服务。

答案 2 :(得分:0)

您需要考虑两件事:

  1. 如果仅为您的应用程序需要GPS信息,则有一个线程可以每隔一秒或您设置的间隔汇集GPS信息。通过这种方式,您的应用程序可以从GPS获取信息,您无需通过提供服务来复杂化。请记住,通过在应用程序中创建一个线程,您需要启动应用程序,以便获取GPS信息。
  2. 现在假设您也想要其他应用程序的GPS信息。然后使用服务是个好主意。这样,其他应用程序也可以获得GPS信息并在其应用程序中使用。当然,这不会神奇地发生,所有应用程序都可以通过运行服务获取GPS信息。您必须编写代码并提供接口,以便所有其他应用程序以及您的应用程序知道如何与服务进行交互。
  3. 如果符合您的要求,现在在应用程序中使用线程更快更整洁。但是,就像我提到的那样,您的应用程序需要在使用GPS信息之前启动。

    使用Service,您甚至可以在启动时运行该服务。因此,您无需启动应用程序即可启动GPS。但是,除非需要在应用程序中使用线程。