0

我有一项服务(它扩展了服务)。在 onCreate 事件中,我执行以下操作...

    locMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    locLstnr = new MyLocationListener();
    locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, locLstnr);  

(顺便说一句,我有这个设置为 10 秒的间隔,它至少每秒熄灭一次)

我所有的信息都表明,如果您有一个扩展 Service 的服务,那么无论活动启动该服务多少次,它都不会启动另一个服务,也不会再次通过 onCreate 事件(尽管它确实再次通过 onStartCommand)。

我的日志中有强有力的证据表明我得到了多个 MyLocationListener 实例。有时2份,有时4份,有时8份。如果不是这样,我将获得我的服务的多个副本。

谁能看到可能导致这种情况的原因?
谢谢。

4

1 回答 1

0

除非它杀死原始服务,否则它不会再次通过 onCreate 。由于未知原因,它经常这样做。然后它重新创建它。解决此问题的廉价方法是让您的 onCreate 函数启动您自己的服务,使其保持常驻。但是,您仍然会丢失内存的内容。

于 2013-01-18T02:45:16.903 回答