java - 服务效率

标签 java android multithreading service

我有一个生成用户位置的服务。 我还得到了一个带有服务实例的线程,该线程从服务获取位置并将其发送到数据库。 线程 hibernate 1 分钟,并再次向服务请求地址并将其发送到数据库。

我的问题是我应该创建一个服务来代替这个线程,并且第二个服务将每 1 分钟启动一次? 优点是当他不需要喜欢该线程时服务不会运行,但缺点是我必须每 1 分钟创建一个新连接。

什么是更好的?谁的效率更高?

最佳答案

我通常认为最好的办法就是不要使用 Thread.sleep();

也就是说,您可以采取以下几种选择:

。每 1 分钟请求一次位置,但这可能会对电池产生奇怪的影响,因为 GPS radio 在非工作时间期间将保持打开状态。

。创建您的服务的 PendingIntent 并要求 AlarmManager 在 1 分钟内再次调用它。这不会让您的 GPS 始终保持开启状态(如果您的程序正确),但需要再次修复位置

。您还可以在同一服务中(无需销毁并重新启动它)使用 ScheduledExecutorService每 1 分钟运行一次线程。 (GPS 打开或关闭取决于编程)

关于java - 服务效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282064/

相关文章:

java - 从 Linux 终端启动 selenium webdriver 测试

android - 以编程方式在 View 上设置负边距

android - 在 Android 中通过 CODE ONLY 更改进度条颜色

linux - 如何挂起另一个线程(不是当前线程)?

c++ - pthread_join - 多个线程等待

Java 将 BufferedReader、DataOutputStream 和 Sockets 传递给可运行线程类会导致写入流时出现套接字异常

java - xml DOM-换行符在 java DOM 解析器中添加文本/属性内容两次

java - 搜索字符串中的特定字符

java - 在类定义的开头或构造函数中初始化成员变量?

android - 如何更改 keystore 中的 SHA1 指纹