获取对从 AsyncTask 调用 Activity 的引用(不是作为内部类)

2024-01-23

是否有可能从不是调用 Activity 类的内部类的 AsyncTask 中获取对启动 AsyncTask 执行的 Activity 实例的引用?

我知道这个线程 https://stackoverflow.com/questions/2379233/android-asynctask-in-external-class,但是它并没有完全解决如何引用调用 Activity 的问题。有些人建议将对 Activity 的引用作为参数传递给 AsyncTask 构造函数,但是,据报道这样做总是会导致 NullPointerException。

所以,我很茫然。我的 AsyncTask 提供了强大的功能,并且我不想将其复制为内部类every想要使用它的活动。必须有一个优雅的解决方案。


“优雅的解决方案”实际上是try将其作为参数传递(传递给构造函数或execute())并看看它是否有效,而不是假设提出上一个问题的人(然后回答了他自己的问题两次)知道他在做什么。我想不出任何内在的东西AsyncTask那会导致Activity成为一个糟糕的构造函数参数,而其他所有对象都很好。

现在我还没有通过Activity(或其他Context) 作为参数AsyncTask, 因为我的AsyncTasks始终是私有内部类。事实上,事实是你want公众AsyncTask对我来说是一种代码味道,表明这些任务应该由Service或其他一些控制点。但是,那只是我。

UPDATE

可以在这里找到处理此模式的更好答案:后台任务、进度对话框、方向改变 - 有没有 100% 有效的解决方案? https://stackoverflow.com/questions/3821423/background-task-progress-dialog-orientation-change-is-there-any-100-working/3821998#3821998

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取对从 AsyncTask 调用 Activity 的引用(不是作为内部类) 的相关文章

随机推荐