Android 为什么我的追踪服务在手机移动时冻结?

Android 为什么我的追踪服务在手机移动时冻结?,android,Android,我开发了一项服务,其中包括计时器任务,每5分钟运行一次,用于保存设备的跟踪记录,每5分钟它会向数据库添加一条记录 当手机不移动时,我的服务工作正常,即每5分钟按应有的方式提供一次记录。但我注意到,当手机在移动时,它会在10或20分钟后更新积分,也就是说,当用户在移动时停止移动时 如果是,服务是否在移动中冻结!whatsapp messenger是如何管理它的?? 请帮忙! 我正在编写onstart方法。请帮忙 @Override public void onStart(Intent intent

我开发了一项服务,其中包括计时器任务,每5分钟运行一次,用于保存设备的跟踪记录,每5分钟它会向数据库添加一条记录

当手机不移动时,我的服务工作正常,即每5分钟按应有的方式提供一次记录。但我注意到,当手机在移动时,它会在10或20分钟后更新积分,也就是说,当用户在移动时停止移动时

如果是,服务是否在移动中冻结!whatsapp messenger是如何管理它的?? 请帮忙! 我正在编写onstart方法。请帮忙

@Override
public void onStart(Intent intent, int startId) {

    Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onStart");

    mLocationClient.connect();

    final Handler handler_service = new Handler();
    timer_service = new Timer();
    TimerTask thread_service = new TimerTask() {       
        @Override
        public void run() {
            handler_service.post(new Runnable() {
                @Override
                public void run() {       
                    try {
                        some function of tracking
                }
            });
        }
    };
    timer_service.schedule(thread_service, 1000, service_timing);







    //sync thread

    final Handler handler_sync = new Handler();
    timer_sync = new Timer();
    TimerTask thread_sync = new TimerTask() {       
        @Override
        public void run() {
            handler_sync.post(new Runnable() {
                @Override
                public void run() {       
                    try {
                        //connecting to the central server for updation
                        Connect();

                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer_sync.schedule(thread_sync,2000, sync_timing);



}

您接受了
Connect
以静默方式引发的可能异常。也许它包含了解决问题的有用信息。我有两个计时器任务,第一个是将值存储到本地数据库,即sqlite。。如果我的设备没有移动,本地数据库会很好地存储这些值。但在行动中,它忽略了许多价值观。(我正在逐行删除本地数据库中的值,如果语句执行时connect返回true,则仅从本地删除)