检查自x段以来我没有收到GPS信号

时间:2012-05-16 12:40:15

标签: android timer gps

我想在失去GPS信号时通知,我发现了这个:
https://stackoverflow.com/a/8322160/1034806
但是如果没有启动onLocationChanged(),如何比较getTime()的两个值呢?

1 个答案:

答案 0 :(得分:1)

最简单的方法是发送延迟消息:

private static final int MSG_SIGNAL_LOST = 1;
private static final int GPS_SIGNAL_LOST_TIME = 10000; // 10 seconds

private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MSG_SIGNAL_LOST:
            handleGpsSignalLost();
            break;
        }
    };
};

private void handleGpsSignalLost() {
    // GPS signal lost, handle here
}

private void postDelayedGpsLostCheck() {
    mHandler.removeMessages(MSG_SIGNAL_LOST);
    mHandler.sendEmptyMessageDelayed(MSG_SIGNAL_LOST, GPS_SIGNAL_LOST_TIME);
}

每次调用postDelayedGpsLostCheck()方法时,只需调用onLocationChanged()方法。 您甚至不需要保存和比较时间。

另外别忘了打电话

mHandler.removeMessages(MSG_SIGNAL_LOST);

当你离开活动时。