这是我的第一个Android应用程序,所以我对完成此任务的最佳方法有点困惑。
我的应用程序将使用位置服务协调GPS并将其保存在基于PHP的网站的在线MySQL数据库中。现在我已经有了检索GPS坐标工作的代码,我正在努力将其传递到在线数据库。我正在考虑使用AsyncTask通过发出POST请求来连接到在线数据库。由于应用程序将不断提供新的坐标,我计划在我的活动的onLocationChanged()方法中执行AsynTask,因此每当坐标更新时,新的更新坐标也会在我的在线数据库中更新。
现在我的问题是,可以在onLocationChanged()方法中执行我的AsyncTask还是有更好的方法?我应该创建一个服务来进行保存并在onLocationChanced方法中启动服务,该方法将在每次更新新坐标时运行服务。
我遇到的另一个问题是,如果用户选择退出应用程序,我假设我的应用程序将停止将其坐标发送到我的在线数据库,如果我在我的活动中使用AsyncTask实现它。如果我希望它继续发送坐标,我应该创建一个服务,除非用户想要停止应用程序,他将打开它并可能按下按钮来终止该服务。
非常感谢任何帮助。感谢
答案 0 :(得分:2)
如果您希望应用继续发送位置,即使用户已离开您的应用,也可以使用后台服务,如果没有必要,那么异步任务就足够了。
注意:如果您的更新间隔很短,例如每分钟多次说..考虑批处理多个更新,然后立即发送它们以节省电力和网络带宽