本文介绍了我是否需要为使用AlarmManager并激活锁定定期使用LocationClient?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从一年前的帖子表明,它是需要使用激活锁定保留CPU收集位置信息(CommonsWare尤其是这里的内)。不过,我不明白为什么我不能简单地调用一个服务,每28分钟,连接LocationClient,设置定时器等待2分钟,然后拿到最近的位置,断开客户端,然后停止该服务。

由于Commonsware,谁在这里分叉他的榜样用户(https://github.com/alexbirkett/cwac-locpoll/blob/master/src/com/commonsware/cwac/locpoll/LocationPollerService.java)用LocationListener的,而不是一个LocationClient,我想知道他的答案是否还aplies。

感谢您的时间!

编辑:难道这个简单,其中一个AlarmManager调用一个服务,每28分钟数>服务获得一个激活锁定和两分钟的计时器经过的LocationClient是连接>超过2分钟已经过去,我可以杀死服务并释放激活锁定?

这将是这个样子:

 电源管理PM =(电源管理)getBaseContext()getSystemService(Context.POWER_SERVICE)。
    PowerManager.WakeLock WL = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,);
    wl.acquire();    定时器theTimer =新的Timer();
    theTimer.schedule(新的TimerTask(){        @覆盖
        公共无效的run(){
            如果(checkIfGooglePlay()){
                getPostLocation();
                w1.release();
                stopSelf();
            }
        }
    },TWO_MINUTES);    返回Service.START_NOT_STICKY;


解决方案

You probably can poll the LocationClient. However, you will still need a WakeLock, as the device will fall asleep during those two minutes otherwise, you will still need AlarmManager for the "every 28 minutes" part, and I don't know if LocationClient will impose other requirements beyond those.

这篇关于我是否需要为使用AlarmManager并激活锁定定期使用LocationClient?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 14:46