【问题标题】:Keeping a geolocation service running?保持地理定位服务运行?
【发布时间】:2011-10-05 10:19:33
【问题描述】:

我被要求做一个可以在某些员工工作时间运行地理定位服务的应用。我有几个问题:

-只要用户不停止服务(启动/停止按钮),是否可以运行服务?据我了解,服务绑定到活动,Android 可以随时终止活动......

-就电池寿命而言,进行位置跟踪的最佳方法是什么? 1/每 x 秒创建、获取更新和删除 LocationManager 和 2/创建一次 LocationManager 并将 LocationManager.requestLocationUpdates 中的 minTime arg 设置为 x 是否相同?

谢谢

【问题讨论】:

    标签: android service geolocation


    【解决方案1】:

    1) 是的,只要用户(或在资源紧缩时,系统)不终止服务,就可以保持服务运行。必须以这种方式运行的服务应该覆盖

    onStartCommand() 
    

    方法和启动方式

    Context.startService() 
    

    您指的是覆盖 onBind() 并通过

    启动的服务
    context.bindService()
    

    阅读服务文档,它包含对两种服务生命周期的描述。

    2) Reto Meier 撰写的here 是地理定位最佳实践的最佳指南之一。看看吧

    【讨论】:

    • 如果绑定到服务的activity被系统杀死了,那么服务也被杀死了,对吧?
    • 服务被终止是由于活页夹对象被泄露的副作用。所以是的,出于所有意图和目的,如果服务绑定到活动,它将被杀死。但是,如果服务是使用 Context.startService() 启动的,那么它的生命周期不会绑定到活动或任何东西。
    • 您提到了绑定到活动的服务。并不真地。任何可以访问上下文对象的类都应该能够启动绑定服务。是的,最明智的用途是活动,但它不是唯一可能的地方。
    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    相关资源
    最近更新 更多