【发布时间】:2015-07-06 23:07:32
【问题描述】:
我目前正在尝试制作一个应用程序,通过使用一项服务通过 GPS 跟踪手机。为了让 GPS 更新坐标,我需要在服务中使用处理程序。现在我遇到的问题是,当我执行 Handler.post 时,它陷入了一个循环,之后,它完全忽略了其余的服务代码。
当我调试时,我发现处理程序在方法之间交替消息,但没有任何有用的结果,它只是一遍又一遍地在相同方法之间循环。
这是包含处理程序的我的服务代码:
public int onStartCommand(Intent intent, int flags, int startId)
{
ctx = ServicioDeFondo.this;
mHandler = new Handler();
reportarGPS = new Thread(new Runnable() { public void run()
{
try
{
while(true)
{
mHandler.post(new Runnable() {
@Override
public void run() {
gps = new GPSTrack(ctx);
latitude = String.valueOf(gps.getLatitude());
longitude = String.valueOf(gps.getLongitude());
}
});
Thread.sleep(10000);
try {
new APISendClass().execute();
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
catch (Exception e)
{
//TODO Auto-generated catch block
e.printStackTrace();
}
} });
reportarGPS.start();
return START_STICKY;
}
我整天都被困在这里,任何帮助将不胜感激!
【问题讨论】:
标签: android gps android-service handler android-handler