我正在开发一个 Android 应用程序,我正在使用每 10 分钟通过 GPS 跟踪一次位置的服务。但是当我将位置监听器放在计时器任务中时,它会抛出异常:
Cannot put code inside thread that has not called
looper.prepare()
.
有没有人对这个问题有任何见解?
最佳答案
您无需启动服务以每 10 分钟接收一次 locationUpdate 而是做这样的事情
mLocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 600000, 0, mLocListener);
这将每 10 分钟自动向监听器发送一次更新
当你遇到像 Looper 这样的错误时。这意味着您不能从其他 Main UI Worker 线程执行某些操作。
您正在运行什么代码并收到此错误。从主 UI 线程执行代码。或者 通过 Main Thread 在您的主类中创建一个 Handler 对象
Handler mHandler = new Handler();
然后在你的任何其他线程中做这样的事情
new Thread(new Runnable(){ public void run(){
// any of your code
mHandler.post(new Runnable(){public void run(){
// the code giving you error Looper
}});
}}).start();
关于android - 在 android 中使用计时器每 10 分钟跟踪一次 Gps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921916/