我有一项服务(扩展服务)。在onCreate事件中,我执行以下操作......
locMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locLstnr = new MyLocationListener();
locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, locLstnr);
(顺便说一句,我这个设定间隔为10秒,至少每秒都会熄灭)
我的所有信息都说,如果您有一个扩展服务的服务,无论活动启动服务多少次,它都不会启动另一个服务,也不会再次通过onCreate事件(尽管它确实再次通过onStartCommand)。
我的日志中有很多证据表明我正在获取MyLocationListener的多个实例。有时2,有时4,有时8副本。如果不是这样,我将获得多份服务副本。
任何人都可以看到可能导致这种情况的原因吗? 感谢。
答案 0 :(得分:0)
除非它杀死原始服务,否则它不会再次通过onCreate。由于未知原因它经常发生这种情况。然后它重新创建它。解决这个问题的便宜方法是让你的onCreate函数启动你自己的服务,所以它仍然是常驻的。你仍然会失去记忆的内容。