【问题标题】:Execute long running task using handler使用处理程序执行长时间运行的任务
【发布时间】:2016-08-11 04:59:38
【问题描述】:

我在活动中使用处理程序每​​秒运行任务。当应用程序进入后台时。我作为前台启动服务,该服务需要本地存储的持续时间。很长一段时间后(当应用程序在后台时)我在活动中开始的这个任务似乎没有运行,因为持续时间没有在用户界面上更新,我使用 Active-Android 作为 ORM 将数据保存到本地存储。请就如何克服这种情况提出任何建议,如果需要任何帮助,我将发布代码。

【问题讨论】:

  • 您在哪个活动生命周期方法(OnCreate/OnResume/OnPause)中调用了您的处理程序? @Hardik Mehta
  • @Nir Duan 架构是这样的,每当用户开始锻炼时都会调用单独的方法。如果你想看,我会发布代码

标签: android service handler bindservice


【解决方案1】:

我强烈建议您更改应用程序的设计,Activity 不应该做任何与附加的 UI 无关的工作。
在当前状态下,用户从您的活动创建新线程,并且当 Android 框架需要额外资源时(可能在活动不再可见后数小时)它会终止活动,这就是 UI 似乎不存在的原因更新了。

我的解决方案-
创建一个背景service以执行“每 X 秒更新一次”操作,并在可见时将您的活动绑定到它。
1.How to create bound service
2.What are activity life-cycle

【讨论】:

  • @ Nir ​​Duan 你是对的,但现在很多事情都依赖于活动,所以如果我做了一些改变,它可能会影响很多事情,我必须快速解决这个问题,所以还有其他解决方法
  • 保持活动活跃的唯一方法是让它可见@HardikMehta
  • @Nir Duan 所以我必须为它设置任何标志
  • 抱歉拼错了 - 没有***方法... @HardikMehta
  • @ Nir ​​Duan 所以最终我必须改变设计或者在某些时候活动可能会被杀死
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2021-02-11
  • 2010-10-06
  • 2021-09-11
  • 2011-01-19
  • 2016-11-13
  • 1970-01-01
相关资源
最近更新 更多