我试图在我正在制作的应用中使用用户位置,但每天都会有一次定位守护进程被jetsammed,因为我的应用停止接收位置数据。
如果我将我的应用程序或任何其他位置感知应用程序带到前台,守护程序将重新启动,但在此之前可能会有很长时间的暂停
定位的足迹相当小,但它的高水位也非常低,所以看起来很容易进入危险区域。最大的流程可以是任何东西,从Facebook,DespicableMe,Paper,Zen Garden到我的应用程序,我在这里看不到真正的模式,当我发现这种情况时我的应用程序没有被杀或收到低内存通知
下面的一些jetsam条目
ProcessesName | <UUID> | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
locationd <bea15e205fed399c957ba05a7086271f> 759.999 6911 0 +58 8279 50 [highwater] (daemon)
locationd <bea15e205fed399c957ba05a7086271f> 1940.653 6896 0 - 8683 50 [highwater] (daemon)
locationd <bea15e205fed399c957ba05a7086271f> 1954.360 7155 0 - 8701 50 [highwater] (daemon)
locationd <bea15e205fed399c957ba05a7086271f> 4612.639 6551 0 - 7743 100 [highwater] (daemon)
不确定我能做些什么来阻止jetsamming定位或原因可能是什么。
有什么想法吗?
答案 0 :(得分:0)
回答我自己的问题。
如果您正在使用“使用时”位置权限并且出于某种原因定位回收(给定足够的时间,任何进程都会),您的应用在前台获取的先前权限不会转发给新的实例,这就是为什么在重新启动应用程序位置更新之前不会恢复。 这很可能是一个错误。
如果您使用“始终”位置权限,那么您不会遇到此问题,任何locationd实例都会为您提供数据。