为什么在onResume中调用startLocationUpdates,在onPause中调用stopLocationUpdates?
Why to call startLocationUpdates in onResume and stopLocationUpdates in onPause?
关于 receive location updates 的文档指出 startLocationUpdates()
应该在 onResume()
中调用,stopLocationUpdates()
应该在 onPause()
中调用,为什么不在 onStart()
中调用和 onStop()
?
在 onResume()
和 onPause()
中调用有什么好处?
那是 "advice",不是强制性的。
好处是避免请求位置更新(并因此消耗电池),而您 using/not 不需要这些位置,因为 activity 在后台。
这取决于你的用例,你可以在 onStart/onStop 中完成,但是如果你在 onPause->onStop 转换期间不使用这些位置,最好放在 onPause 中。
如果您查看下图,当 activity 进入前台时调用 onPause,然后暂停 onStop。
关于 background/not 可见性的一个小差异:
如果您有一个带有 ThemeDialog 的 activity,则会调用 onPause,但不会调用 onStop。
关于 receive location updates 的文档指出 startLocationUpdates()
应该在 onResume()
中调用,stopLocationUpdates()
应该在 onPause()
中调用,为什么不在 onStart()
中调用和 onStop()
?
在 onResume()
和 onPause()
中调用有什么好处?
那是 "advice",不是强制性的。 好处是避免请求位置更新(并因此消耗电池),而您 using/not 不需要这些位置,因为 activity 在后台。
这取决于你的用例,你可以在 onStart/onStop 中完成,但是如果你在 onPause->onStop 转换期间不使用这些位置,最好放在 onPause 中。
如果您查看下图,当 activity 进入前台时调用 onPause,然后暂停 onStop。
关于 background/not 可见性的一个小差异: 如果您有一个带有 ThemeDialog 的 activity,则会调用 onPause,但不会调用 onStop。