如何为 Android 应用程序提供更好的省电数据更新服务

发布于 2024-10-17 17:30:25 字数 236 浏览 2 评论 0原文

我正在构建一个 Android 应用程序,用于获取互联网数据并将其呈现为列表。数据每分钟都在变化,所以我做了一个服务,并使用定时器以一定的间隔加载数据。

我的问题是:

  • 我想知道应用程序(不是特定活动)何时进入后台,例如,用户按下主页按钮,在这种情况下,我想暂停服务以节省电池。
  • 我想知道手机何时处于睡眠状态(屏幕变暗),在这种情况下,我也想暂停服务。

有什么想法吗?

I am building an android app for fetching internet data and rendering it as a list. The data is changing every minute, so I made a service and used a Timer to load the data with an interval.

My question is that:

  • I want to know when the app (not a particular activity) goes to the background, for example, user pressed the home button, in that case, I want to pause the service in order to save battery.
  • I want to know when the phone is sleeping (screen dimmed), in that case, I would like to pause the service too.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毅然前行 2024-10-24 17:30:25
  1. onPause 中暂停您的服务(并在 onResume 中恢复)。
  2. 除非您有唤醒锁,否则当手机处于睡眠状态时您的应用程序将不会运行。
  3. 如果您绑定到前台应用程序,为什么首先要使用服务呢?

详细说明1:我知道你说的是“应用程序”,而不是“特定活动”,但你最好的选择是使用 Activity.onPauseActivity.onResume 。如果有的话,您可以添加一个短暂的延迟,这样如果 onPause 紧随 onResume 之后就不会发生任何事情。

  1. Pause your service in onPause (and resume in onResume).
  2. Unless you have a wake lock, your app will not run when the phone is sleeping.
  3. If you're bound to a foreground app, why use a service in the first place?

To elaborate on 1: I understand you're saying "app", not "a particular activity", but your best bet is to use Activity.onPause and Activity.onResume. If anything, you can add a short delay so that nothing happens if onPause is followed immediately by onResume.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文