【问题标题】:GPS Data ServiceGPS数据服务
【发布时间】:2013-06-20 12:10:49
【问题描述】:

我正在尝试编写以可设置的时间间隔将 GPS 位置数据发送到服务器的服务。作为 android 的新手,这并不像我希望的那么容易,而且互联网似乎也没有真正帮助我。服务应该...

  • 开机启动
  • 能够读取可随时从活动/应用程序更改的设置,并且还可以实时应用这些设置,而无需重新启动手机
  • 能够将数据上传到互联网 (httpRequest)
  • 不会导致我的手机崩溃(之前的尝试导致我的手机崩溃)

什么是最好的解决方案?我应该朝哪个方向前进?

就 LocationListener 本身而言,最好的解决方案是什么?

感谢您的帮助。

【问题讨论】:

  • “互联网似乎也没有真正帮助我”:真的吗?你试过这个网站的搜索功能吗?
  • 是的,有很多文章针对您的要求的每一个部分。
  • 我猜你不是在寻找正确的东西。在 Android 中,“服务”与 Windows 中的不太一样。
  • 我尝试使用广播接收器(实际上并没有工作),我必须纠正自己,因为我找到了几篇文章,但实现提到的想法有点棘手。我只是不确定如何收集 GPS 数据——是否在某种线程中进行。

标签: java android service android-activity gps


【解决方案1】:

经过 7 分钟的搜索,这里有几篇文章可以帮助您:

开机启动

这是使用广播接收器完成的。查看此答案以了解实现它的确切方法:Android -Starting Service at Boot Time

能够读取可随时更改的设置 活动/应用程序,还可以实时应用这些设置,而无需 重启手机

编辑根据 OP 的评论,可以使用 PreferenceActivity 为应用程序创建设置页面。 This article 显示了 PreferenceActivity 的基本实现,而 excellent question 显示了如何从 SharedPreferences 中读取这些首选项。而且,是的,SharedPreferencs 将在重新启动后持续存在(但在应用卸载后它们不会持续存在)。

能够将数据上传到互联网(httpRequest)

关于如何在 android 中进行 HTTPRequests:Make an HTTP request with android

不会导致我的手机崩溃(之前的尝试导致我的手机崩溃) 崩溃)

这个真的取决于你。但是,嘿,您可以随时在此网站上搜索所有可能遇到的错误。

就 LocationListener 本身而言,这里最好的是什么 解决办法?

试试this one(有完整的代码示例)和this one。

【讨论】:

  • 在设置下,我指的是发送数据之间的时间间隔、实际启用/禁用服务以及连接到服务器时注册数据所需的 ID。
  • @user2505059 你的意思是Preference Activity?
  • 例如,重启后是否保留首选项?
  • 感谢问题已基本解决!剩下的问题是更改首选项时 - 如何立即应用更改后的首选项?
  • @user2505059 你需要实现一个OnPreferencesChangedListener。您的侦听器获得对已更改的 sharedPrefs 的引用,以及访问新值的键。不过要小心this 问题。如果您希望我为您提供更多详细信息,请先修改您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多