如何在 Android 中停止位置更新
在我的应用程序中,我使用 GPS 来获取坐标。我有一个更新位置的按钮。当我使用 GPS 更新位置时,我会创建一个进度条。如果我停止进度条,我
mlocManager.removeUpdates(mlocListener);
在进度条的 onCancelListener 中使用...当我取消它时,也会运行一些后台服务,因为
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
为了停止它,我将代码放入线程中。由于许多函数(如 stop、destroy)已被弃用,如何停止线程?
In my application I use GPS to obtain coordinates. I have a button that updates the location. When I update the location using GPS then I create a progressbar. If I stop the progress bar I use
mlocManager.removeUpdates(mlocListener);
in onCancelListener
of the progressbar... When I cancel it then also some background service runs due to
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
In order to stop it I put my code in a thread. How can I stop the thread since many of the functions (like stop,destroy) are deprecated?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
线程现在基本上以这种方式停止:
您有一些可以同步访问它的变量。当您需要停止线程时,您可以将此变量设置为某个值,表明线程应该停止。
线程在执行时读取变量,如果它看到变量发生变化,则停止,只需从
run()
方法返回。UPD:通过
Thread
类的interrupt()
和interrupted()
方法实现。Thread is basically stops now in that way:
You have some variable with synchronize access to it. When you need to stop the thread you set this variable to some value, indicating thread should be stopped.
Thread reads the variable while performing it's execution, and if it sees that variable changes, stops simply returns from
run()
method.UPD: It is implemented with methods
interrupt()
andinterrupted()
ofThread
class.