【发布时间】:2019-07-05 13:05:17
【问题描述】:
标题不好,请阅读以下内容以更好地理解我的问题
我有一个 Android 应用程序,其中一项任务很耗时,通常需要 2 到 5 分钟才能完成...此任务由一个引用启动器活动的后台服务完成。
99% 的用户不想一直等待加载栏,而是简单地打开另一个应用程序或类似的东西......这可能导致 android destroying 引用的活动......
忽略这个故事的上下文泄漏......我的问题是:
当服务完成其任务时,它会尝试调用一个方法将值返回给父 Activity,但由于它现在被销毁了,所以我不能这样做......
因此,当用户重新打开应用程序时,该活动的最后一个已知状态是“正在加载”,因此它会永远加载......(或重试重新运行任务,这将导致另外 5 分钟的等待等等...... .)
我怎样才能避免这种情况?
==============更新==================
在得到一个很好的答案可能会解决像我这样的大多数问题后,我决定添加更多信息来解决我的问题。
耗时的后台服务不是处理密集型的,实际上需要这么长时间的原因是因为它正在使用服务验证一些用户“凭据”(当我说一些时,实际上不止一个)
所以我无法存储结果并相信它在下次运行时有效
我确实知道该协议需要改进,但会进行更大的架构更改,所以我想知道是否有人知道如何根据实际需求处理它
【问题讨论】:
标签: android android-asynctask background-service