gpt4 book ai didi

android - 当应用程序退出时,在单独的线程中重复任务的方法是什么?

转载 作者:行者123 更新时间:2023-11-30 02:08:31 25 4
gpt4 key购买 nike

我需要检查是否没有互联网连接、存储数据并过一段时间检查互联网连接。如果存在,则发送数据,否则任务需要再次重复,直到出现 internet 连接。这些检查需要在应用程序处于前台模式时进行,如果应用程序处于后台模式,则可以取消这些检查。

我想知道使用 AlarmManager 还是 TimerTask 是个好主意?

在我看来,AlarmManager 是正确的解决方案,但即使应用程序处于后台模式,它也能正常工作。

最佳答案

我会按如下方式实现:

  1. 当您想通过网络发送数据时,请检查是否有互联网连接。
    1. 如果有,发送数据。
    2. 如果没有将数据存储在某处。
  2. 注册BroadcastReceiver对于 CONNECTIVITY_ACTION -event .只要连接发生一些变化,就会调用此接收器。
  3. 当接收器被调用时,检查连接并做出相应的 react 。

如果您希望您的应用仅在前台运行时发送数据,您可以 register BroadcastReceiver 当您的应用程序“进入前台”并且 un-register当它“进入后台”时。

确定应用程序是否在前台是一个棘手的部分,取决于您如何定义它。如果您将其定义为“显示某个(一组) Activity ”,那么您可以在 onStart() 中注册并在 onStop 中注销.

我的建议是在 BoradcastReceiver 中启动一个服务来处理数据的发送,即使应用程序不在前台也是如此。这样您就可以尽快发送数据,即使用户在一段时间内没有返回您的应用程序也是如此。

关于android - 当应用程序退出时,在单独的线程中重复任务的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com