我正在创建一个应用程序,如果他已经静止了几分钟(比如 10 分钟),它会提醒用户。
我发现很容易检测运动,使用 LocationListener 如果设备移动了一定距离就会触发一个功能。
但是,我想要一些不同的东西。如果设备在一定时间内没有移动,我希望调用一个函数。
我如何做到这一点?
您可以轻松设置一个计时器,当 LocationListener 触发时,将计时器重置为零。如果计时器达到 10 分钟,那么您就知道用户没有移动。这种方法的缺点是计时器必须继续运行,因此您需要安装为服务。
像这样的东西可能会起作用我不确定这段代码是否有效,我没有测试它,但通常你需要做的是获取当前位置。然后使用计时器在 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);