Android 静态方法还是广播接收器?

Android 静态方法还是广播接收器?,android,android-asynctask,broadcastreceiver,return-value,static-methods,Android,Android Asynctask,Broadcastreceiver,Return Value,Static Methods,我在这个很棒的网站上找到了很多有用的答案,帮助我学习应用程序编程。现在是我提出问题的时候了,因为我找不到类似的问题。事情是这样的:我有一个活动(假设是主活动),它使用一个类来执行异步任务的各种后台操作。在onPostExecute方法中,我使用公共静态方法(es.MainActivity.setResult(asystaskResult))向主活动返回值;我的问题是:这是处理结果的正确方法吗?我应该使用广播接收器吗?有没有更好的方法可以使用?我是发帖的新手,我不知道我的发帖方式是否正确。我会感谢

我在这个很棒的网站上找到了很多有用的答案,帮助我学习应用程序编程。现在是我提出问题的时候了,因为我找不到类似的问题。事情是这样的:我有一个活动(假设是主活动),它使用一个类来执行异步任务的各种后台操作。在onPostExecute方法中,我使用公共静态方法(es.MainActivity.setResult(asystaskResult))向主活动返回值;我的问题是:这是处理结果的正确方法吗?我应该使用广播接收器吗?有没有更好的方法可以使用?我是发帖的新手,我不知道我的发帖方式是否正确。我会感谢任何指向有用答案的帮助或链接。提前谢谢

这是处理结果的正确方法吗

可能不会,因为这样很容易导致内存泄漏

我应该使用广播接收器吗

可能不是你想的那样

有更好的方法吗

AsyncTask
由保留片段管理,并让任务与片段实例对话,如中所示


或者,使用事件总线,如
LocalBroadcastManager
、Square的Otto或greenrobot的EventBus,如。

如果我理解正确,方法是向执行异步工作的主活动添加一个supportfragment。并且可以从support frag访问主活动的方法?或者我什么都不懂?@user3805886:“是否可以从支持框架访问主活动的方法?”--尽量不要在后台线程(
AsyncTask
doInBackground()
)中这样做。让片段在主应用程序线程上谈论其托管活动是安全的(例如
AsyncTask
onPostExecute()
).好的.我和localbroadcast manager解决了这个问题.谢谢你的回答