我做了一个应用程序,是通过短信发送GPS坐标。
因此,当你点击按钮,它将尝试更新位置,但由于GPS坐标更新需要10-15秒,它将跳到获取lastknowLocation并发送短信。
-lastKnowLocation已经过时了,或者是0.0,0.0。
如何延迟短信的发送,直到它获得新的GPS和弦?
发布于 2014-02-21 19:59:59
您可以使用BroadCastReceiver接收新的gps位置:BroadcastReceiver for location。您将使用带有requestLocationUpdates参数的PendingIntent版本,此方法允许接收新的坐标,即使应用程序被杀死,也可以从文档中获得:
该方法适用于后台用例,更具体地用于接收位置更新,即使应用程序已被系统杀死。为了做到这一点,使用PendingIntent作为启动服务。对于前台用例,建议使用该方法的LocationListener版本,请参见requestLocationUpdates(LocationRequest,LocationListener)。
在您的广播onReceive中,我会触发一个使用IntentService的IntentService:https://github.com/commonsguy/cwac-wakeful。这是因为广播接收机的处理应该总是尽可能短,它总是更好地开始一项服务--即。IntentService,为了防止安卓在处理广播后杀死你的应用程序和服务(安卓可以这么做--但大多数情况下,如果你的应用在触发悬念之前就被杀死了),你就可以使用觉醒。在您的IntentService中,您可以安全地发送电子邮件。您可以保存您的应用程序共享首选项内的短信信息。
所有这些复杂是因为用户可以在点击按钮后,按下主页按钮,你的应用程序实际上可能会被杀死。
https://stackoverflow.com/questions/21943828
复制相似问题