2016-08-02 18 views
-6

我正在寻找一个将简化执行异步操作(网络请求,数据繁重解析等)的库,并且它的回调将在正确的时间被调用我需要解决它。自动挂接到Activity生命周期方法的异步任务库

我举几个例子:

  1. 片段交易 - 如果我要当一个异步任务完成,然后我需要确保该活动是在“后继续”执行片段交易州,否则我得到臭名昭着的IllegalStateException。这意味着两件事:首先在异步任务回调中,我需要检查活动是否已恢复。其次,如果它没有恢复后,我需要在活动上设置一个成员变量,一旦onPostResumeonResumeFragments被调用,那么我将执行片段事务。
  2. 装载机 - 当使用装载机然后在其onLoadFinished方法我仍然有同样的问题(1),但我还需要在处理器执行片段交易,否则我得到另一个IllegalStateException异常这表示片段事务不能在onLoadFinished方法中完成。

基本上结果是,目前有很多解决方法需要完成,以确保Android生命周期在执行异步回调中的任何操作之前处于“正确”状态。即使这意味着该库需要延迟回调调用,直到活动恢复。

我在找的是一个库,它可以确保在调用异步回调时相应的活动已经处于正确的状态,我不需要进行任何手动检查并且可以继续与片段交易或我想要做的其他事情。

不言而喻,它应该正确地考虑旋转期间触发的生命周期事件。

你们知道有这样的图书馆吗?

谢谢:)

+3

问题要求我们推荐或找到一本书,工具,软件库,教程或其他非本地资源,因为它们倾向于吸引自以为是的答案和垃圾邮件,所以不适合堆栈溢出。相反,请描述问题以及到目前为止解决问题所做的工作。 –

+1

为什么“正确”是粗体? – lelloman

+0

我在这里提供了一个Android开发人员正面临的真实具体问题,并在此处提供了我迄今为止所尝试的内容(请参阅(1)和(2)),并且我得到了-4?真的吗? 我不得不说,它并没有真正促进感觉良好/安全的环境来提问,这是StackOverflow所代表的基础。我用文字解决方案替换单词库会有关系吗? – ifeins

回答

0

无论您选择使用您会需要是生命周期知道什么代码。也就是说,在执行片段事务之前,您总是必须检查您的片段和活动是否处于正确的状态。在加载器的情况下,您可以检查状态,然后使用commitAllowingStateLoss而不是提交,这将消除对处理程序的需求。

但是,只有在确保您正在转换的片段仍处于活动状态后才能执行此操作。不幸的是,目前还没有一种简单的方法来建立一个工作流程,当网络通话成功时,您可以转换到下一个屏幕或片段。

相关问题