我正在创建一个应用程序,如果用户静止了几分钟(比如说10),就会提醒用户。
我发现使用LocationListener可以很容易地检测到动作,如果设备移动了一定距离,它会触发一个函数。
然而,我想要一些与众不同的东西。如果设备在一段时间内没有移动,我希望调用一个函数。
我是如何实现这一目标的?
答案 0 :(得分:1)
您可以轻松设置计时器,当LocationListener触发时,将计时器重置为零。如果计时器达到10分钟,那么您就知道用户没有移动。这种方法的缺点是计时器必须继续运行,因此您需要安装为服务。
答案 1 :(得分:1)
这样的事情可能会解决这个问题我不确定这段代码是否有效,我还没有测试过,但一般来说你需要做的就是获取当前位置。然后使用计时器在10分钟内检查它是否仍然在同一位置。如果不是意图开始一项新活动。
private double locationcheck;
locationcheck = this.getcurrentlocation();
public double[] getcurrentlocation(){
double[] locations= new String[2];
l = lm.getLastKnownLocation(providers.get(i));
locations[0] = l.getLatitude();
locations[0] = l.getLongitude();
return
}
然后使用此方法检查它:
final Handler handler = new Handler();
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
if (locationcheck!=this.getcurrentlocation()) {
Intent i=new Intent(ctxt, YourActivity.class);
StartActivity(i);
}
}
});
}
}, 3000,10000);