0

我正在创建一个应用程序,如果他已经静止了几分钟(比如 10 分钟),它会提醒用户。

我发现很容易检测运动,使用 LocationListener 如果设备移动了一定距离就会触发一个功能。

但是,我想要一些不同的东西。如果设备在一定时间内没有移动,我希望调用一个函数。

我如何做到这一点?

4

2 回答 2

1

您可以轻松设置一个计时器,当 LocationListener 触发时,将计时器重置为零。如果计时器达到 10 分钟,那么您就知道用户没有移动。这种方法的缺点是计时器必须继续运行,因此您需要安装为服务。

http://developer.android.com/reference/java/util/Timer.html

于 2012-06-26T17:04:45.080 回答
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); 
于 2012-06-26T17:22:26.580 回答