我checkUpdate
在这个方法中调用了一个线程:
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()
系统调用该方法,有时在线程完成之前,这会导致我的应用程序出现不可预测的行为。
如果已经在运行或类似的东西,有什么方法可以不运行线程?
解决方案:
我知道发生了什么,你需要调用locationManager.removeUpdates(locationListener);
并设置locationManager=null
你的销毁活动,否则即使应用程序关闭,服务仍在运行并获取位置。