0
我有一个线程调用checkUpdate
这个方法里面:反复调用方法Android的线程
public void onLocationChanged(Location location)
checkUpdate = new Thread() {
public void run() {
try {
// do some long staff using location variable
} catch (Exception e) {}
handler.sendEmptyMessage(0);
}
};
checkUpdate.start();
的问题是,onLocationChanged()
方法由系统调用,线程完成有时会之前,这将导致不可预知的行为在我的应用程序。
有没有办法不运行线程,如果已经运行或类似的东西?
SOLUTION:
我知道发生了什么事情,你需要调用locationManager.removeUpdates(locationListener);
,并设置你的破坏活动locationManager=null
,否则即使应用程序被关闭,该服务仍在运行和获取位置。
它不工作,threadStarted永远是假的 – Xenione 2012-07-26 19:35:44
我没有看到有问题的代码@Xenione。你可以把一些登录,看看线程是否正在启动? – Gray 2012-07-26 19:37:38
好的。可能是处理程序有问题,可能因为我必须在处理程序任务完成时将threadStarted设置为True。do你知道该怎么做?谢谢 – Xenione 2012-07-26 19:52:10