保持 GPS 服务正常运行并优化电池寿命

2023-11-21

我必须构建一个应用程序,其中 GPS 跟踪器运行大约一天。我知道 SO 中有类似的问题,但我还没有找到一些问题的答案。

-我需要每 10 分钟修复一次 GPS,所以我认为最好的方法是启动定位服务,进行修复(或超时)并停止服务(使用removeUpdates())。我怎样才能让一个应用程序(或服务或其他什么)每 10 分钟运行一次这个周期,并确保只要还有一些电池,它就会继续运行(即使设备进入睡眠状态,它也应该每 10 分钟唤醒一次以得到修复) )?使用 AlarmManager 是个好主意吗?

-用这种方法我的电池能持续一天吗?

我查过mytracks但 GPS 监听器似乎始终开启,电池预计可持续使用不超过 5 小时。

我也检查过CWAC 位置轮询器但它只removeUpdates()超时并立即重新启动侦听器。它还使用唤醒锁,而就我而言,我认为 AlarmManager 可能是一个更好的主意。

欢迎任何帮助/建议


你很适合我使用的警报管理器

    Intent serviceIntent = new Intent(this, TrackerService.class);
    mPendingIntent = PendingIntent.getService(this, 0, serviceIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    alarmManager.cancel(mPendingIntent);
    alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis(), interval, mPendingIntent);

在类似的应用程序中获取网络位置

启动服务之间的间隔是毫秒

服务启动、获取位置并关闭

这比在活动服务中等待报告的电池效率要高得多

我发布的代码首先取消了之前的警报,这样您就不会收到超过 1 个警报:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保持 GPS 服务正常运行并优化电池寿命 的相关文章

  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • 与通用地图相比,MapView 的分辨率较差

    我刚刚收到 HTC Desire 进行测试 我注意到 残留在小于整个屏幕的框架中的地图视图不如通用地图应用程序那么清晰 有什么办法解决这个问题吗 您应该使用 API 级别 4 或更高级别编译应用程序 然后在 AndroidManifest
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • foo.setVisibility(View.GONE) 和parent.removeView(foo) 之间的区别

    如果 foo 是一个视图 那么有什么区别foo setVisibility View GONE and fooParent removeView foo 我对两个语句之前和之后视图的内存消耗特别感兴趣 可见性设置为 GONE 的视图是否会消
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • android - 如何让按钮每次按下时单击播放声音文件?

    我打开了一个新项目 现在我想做的是 通过按下按钮 我想要播放一个 mp3 文件 而且每次按下按钮时 声音文件都会再次从头开始播放 所以假设 mp3 长 10 秒 我按下按钮 它正在播放 4 秒后我再次按下按钮 声音将再次播放 现在我想知道的
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • 带有工具提示的搜索栏 android

    Hi All 我正在尝试使用工具提示自定义 android 搜索栏 如给定的图像 有没有办法在搜索栏中添加带有拇指的文本视图 或任何其他想法 Thanks 我们可以通过拇指的界限来做到这一点 并在seekbar的progressChange
  • 片段中的 SavedInstanceState 始终为 null

    我使用 XML 以及活动中的 setContentView 将片段附加到活动 A 有一个问题 因为我的片段中有非常动态的视图 所以当方向改变时 我必须恢复所有的观点状态 我有问题 因为我正在使用类似的东西 public void onSav
  • FCM 主题是否适合更多用户?

    我对使用主题消息有点困惑 我的场景是根据通知触发一些作业 请帮助我更多地了解这一点 如果我们正在处理大量用户 则可以使用 FCM 主题向用户发送通知 我们可以只使用数据消息和主题消息吗 使用主题发送的消息是否保证送达 我在 FCM 文档中看
  • 如何从另一个活动更新 Recyclerview 数据

    我有两个活动 MainActivity 和 Addlogactivity 我正在更新 Addlogactivity 中的数据 该数据应显示在 mainactivity recyclerview 中 数据未在数据库中更新 MianActivi
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下
  • FCM(Firebase Cloud Messaging)如何发送到所有手机?

    我创建了一个小型应用程序 能够从 FCM 控制台接收推送通知 我现在想做的是向所有使用 API 安装应用程序的 Android 手机发送推送通知 这就是我完全迷失的地方 有没有办法在不收集所有注册ID的情况下将其发送到所有手机 这是否仅适用

随机推荐

  • 在网络上获取 Python 脚本输出的最简单方法是什么?

    我有一个连续运行的 python 脚本 它每 30 秒输出 2 行信息 我希望能够在网络上查看此输出 特别是 我希望网站能够自动更新 每 30 秒在页面 网站顶部添加新输出 而无需刷新页面 我知道我可以用 javascript 做到这一点
  • GWT:在服务器代码中访问 i18n 消息

    我有一个扩展的接口com google gwt i18n client Messages类 我用它在 GWT 应用程序中检索 i18n 消息 它看起来像这样 public interface MyMessages extends com g
  • jQuery 触发 DatePicker 更改事件

    我有以下代码 custom datepicker selector datepicker weekStart 1 on changeDate function en var correct format correct format en
  • 未标记 AcceptVerbs、HttpGet 或 HttpPost 的控制器操作的默认行为是什么?

    如果我创建一个控制器操作并且不使用它来装饰它AcceptVerbs HttpPost or HttpGet 默认行为是什么 该操作是否允许任何访问方法或默认为GET 它可以通过任何动词访问
  • java中equals方法的实现

    这是我对 Coor 类的 equals 类的实现 它只包含 2 个整数 x 和 y 这是实现该方法的正确方法吗 public boolean equals Object obj if obj null obj getClass this g
  • Python3 Tkinter 字体不工作

    我将 python 3 3 与 tkinter 一起使用 并且安装了 python3 tk 包 在大多数文档中 使用旧的 import tkFont 它不再起作用 这应该有效 from tkinter import font appHigh
  • C++ 中的虚拟网络摄像头

    我想编写一个新的虚拟网络摄像头驱动程序 例如它将采用 AVI 或实时流作为屏幕并将其作为网络摄像头源进行流式传输 我真的不会有网络摄像头 我想添加一个可以传输桌面屏幕的虚拟网络摄像头 我应该在内核模式下编写一个网络摄像头来做到这一点 如果是
  • 遍历并修改dict结构的树状列表

    我有一个如下所示的结构 id 4 children None id 2 children id 1 children id 6 children None id 5 children None id 7 children id 3 chil
  • 拳击会导致性能问题吗?

    我正在开发一个项目 其中我们正在生成一种编译为 java 的语言 我们使用的框架 xtext 在其生成的代码中大量使用了装箱 具体来说 如果您有如下声明 int i 1 int j 2 int k i j 然后编译后的代码如下所示 Inte
  • ESLint:创建下一个应用程序时选项无效

    我正在创建一个新的 Next js 应用程序 当我跑步时yarn create next app我开始在 Visual Studio Code 中编写 javascript 代码 每次我输入数字时 ESlint 扩展都会返回一个错误 当然
  • 如何在 Grails 中更新外部配置文件而不重建 war 文件

    如何更新外部配置文件 例如 config ex groovy config ex properties 而不在 Grails 中重建 war 文件 重新启动应用程序服务器将应用外部配置文件中的新更新 如果我理解得很好的话 你想在战争之外外部
  • 反向 Java Graphics2D 缩放和旋转坐标

    我使用Java中的Graphics2D来缩放和旋转我绘制的图片 我现在希望能够在单击图片中的某个点时知道原始坐标是什么 因此 鉴于旋转和缩放的坐标 我想计算原始坐标 有没有一种简单的方法可以做到这一点 如果您保留一份副本AffineTran
  • Python 中 module.__init__() 最多接受 2 个参数错误

    我有 3 个文件 factory imagenet py imdb py 和 imagenet py factory imagenet py 有 import datasets imagenet 它还有一个函数调用为 datasets im
  • maven命令中-D表示什么?

    谁能解释一下 D 在 maven 命令中表示什么 mvn clean install DskipTests 您定义了一个可由Maven 插件 or 在 pom 内部使用 gt mvn help usage mvn options Optio
  • 为什么 `cat <(cat)` 会产生 EIO?

    我有一个程序可以同时读取两个输入文件 我想让这个程序从标准输入读取 我想我会用这样的东西 program1 lt cat lt program2 但我刚刚发现 cat lt cat produces mmap2 NULL 139264 PR
  • 通过 Heroku 上托管的 Rails 上传和解压缩文件到 S3?

    我希望能够将包含许多图像的 zip 文件上传到我的 Rails 应用程序 然后我希望 Rails 解压该文件并将其中的图像附加到我的照片模型中回形针 以便它们最终存储在我的 Amazon S3 帐户中 通过 Paperclip 配置 我想在
  • 从 Twitter 抓取用户位置

    我正在尝试从 Twitter 中获取用户名的纬度和经度 用户名列表是一个 csv 文件 一个输入文件中包含 50 多个名称 以下是我迄今为止所做的两次尝试 他们似乎都没有工作 欢迎对任何一个程序进行更正或采用全新的方法 我有清单User n
  • CoWaitForMultipleHandles API 的行为与文档不符

    这是由另一个问题我正在看着 阅读起来可能会有点长 请耐心等待 显然 CoWaitForMultipleHandles does not按照 MSDN 上记录的方式进行操作 下面的代码 基于原始问题 是一个控制台应用程序 它使用测试 Win3
  • Spring Boot RSocketRequester 处理服务器重启

    我有一个关于 Springs RSocketRequester 的问题 我有一个 rsocket 服务器和客户端 客户端连接到该服务器并请求 MessageMapping端点 它按预期工作 但是如果我重新启动服务器怎么办 如何从客户端自动重
  • 保持 GPS 服务正常运行并优化电池寿命

    我必须构建一个应用程序 其中 GPS 跟踪器运行大约一天 我知道 SO 中有类似的问题 但我还没有找到一些问题的答案 我需要每 10 分钟修复一次 GPS 所以我认为最好的方法是启动定位服务 进行修复 或超时 并停止服务 使用removeU