使用android中的计时器每10分钟跟踪一次Gps
Posted
技术标签:
【中文标题】使用android中的计时器每10分钟跟踪一次Gps【英文标题】:Track Gps At every 10 minutes using timer in android 【发布时间】:2011-06-22 18:09:39 【问题描述】:我正在开发一个 android 应用程序,并且我正在使用一项服务,该服务每 10 分钟通过 GPS 跟踪一次位置。但是当我将位置侦听器放在计时器任务中时,它会引发异常:
无法将代码放入尚未调用
looper.prepare()
的线程中。
有人对这个问题有任何见解吗?
【问题讨论】:
【参考方案1】:您无需每 10 分钟启动一个服务来接收 locationUpdate 而是做这样的事情
mLocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 600000, 0, mLocListener);
这将每 10 分钟自动向侦听器发送更新
当你遇到像 Looper 这样的错误时。这意味着您不能从 Main UI Worker 线程执行某些操作。
您正在运行什么代码并收到此错误。从主 UI 线程执行代码。要么 通过主线程在你的主类中创建一个 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();
【讨论】:
【参考方案2】:这个方法很简单,可以更新UI线程:
new CountdownTimer(30000, 1000)
public void onTick(long millisUntilFinished)
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
public void onFinish()
mTextField.setText("done!");
.start();
【讨论】:
以上是关于使用android中的计时器每10分钟跟踪一次Gps的主要内容,如果未能解决你的问题,请参考以下文章