我的应用程序有问题。我需要在某个时间间隔获取位置更新,因此基本上需要能够很好地控制 GPS 模块,这对于 Android 操作系统来说并不容易。基本上我需要每隔 5 分钟打开 GPS 2 分钟。我有计时,我可以两次获得位置,但随后应用程序因运行时错误而崩溃 - 每个线程只能创建一个 Looper。时间安排在服务类中完成并且运行良好,它删除了更新以及我遇到的所有问题。
我最初遇到了这个错误-“无法在没有调用 Looper.prepare() 的线程内创建处理程序”,我用下面的代码修复了这个错误,但现在我得到了唯一的一个 Looper 错误
我的 looper 线程看起来像这样(请不要苛刻,我对 Android 很陌生,哈哈)
public void run() {
Looper.prepare();
setLooper(Looper.myLooper());
LocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
0, locationListener);
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
stopLooper();
}
}, TWO_MINUTES);
Looper.loop();
t.cancel();
setLooper(null);
vb.getLm().removeUpdates(ll);
}
就像我说的我是新手,我不知道如何使用处理程序。我确实从 StackOverflow 的一篇文章中得到了一些代码,只是用不同的方式使用它,但它不起作用。
请我真的需要帮助。感谢您的任何回复。
好的,我似乎找到了解决方案,只需要对其进行测试,然后再等待 7 个小时,我就可以发布答案了,哈哈。感谢您的任何意见和回复。