java Android异步任务重用
我正在开发一个应用程序,在许多活动中,我需要通过Http检索数据。 一旦有了数据,我就在onPostExecute()回调方法中处理它
如果我将异步任务定义为一个内联类,那么这很好,但是由于我想在许多活动中执行相同的处理,所以我将其定义为一个外部类
所以问题是,使用外部类如何向调用类发回“事件”信号,作为将数据传回的手段。我知道如何在C#中实现这一点,但我对Java是新手,不知道如何实现这一点
你可以在下面搜索框中键入要查询的问题!
我正在开发一个应用程序,在许多活动中,我需要通过Http检索数据。 一旦有了数据,我就在onPostExecute()回调方法中处理它
如果我将异步任务定义为一个内联类,那么这很好,但是由于我想在许多活动中执行相同的处理,所以我将其定义为一个外部类
所以问题是,使用外部类如何向调用类发回“事件”信号,作为将数据传回的手段。我知道如何在C#中实现这一点,但我对Java是新手,不知道如何实现这一点
# 1 楼答案
诚然,一个听众在技术上是正确的,但我认为这要么太复杂,要么不够复杂
这里有一个更简单的解决方案:
相当于:
。。。这就是你要问的:当你拉出内部类时,你失去了隐式指针。把它说清楚,然后把它传下去
坏消息是,这种解决方案会导致各种内存泄漏和生命周期问题。我非常建议,在你的程序变得更大之前,你考虑使用IntentService而不是AsyncTask,并使用处理程序或活动。运行Nuithread将结果返回到UI线程
# 2 楼答案
一种方法:
定义一个名为
ParentActivity
(当然是扩展活动)的父抽象类。包含一个名为onAsyncCallback();
的抽象方法的让每个使用该任务的类扩展该类并实现该方法
在AsyncTask构造函数中,让它在^{中接受
例如
在
onPostExecute()
中完成时,只需执行这也适用于接口,它做同样的事情,除了在侦听器实例中有构造函数accept的intead之外