Nit*_*tin 2 android memory-leaks design-patterns callback heap-memory
我正在开发一个应用程序,我在其中使用改进库来调用Web服务.在调用web-service后,回调返回Response然后我将响应传递给下一个活动.我想知道最好的方法.
我是记忆相关问题的新手,如果我完全错了,请纠正我.
我应该创建一个新类,然后将弱引用传递给该类,并在主活动上调用该类中的函数.
我将在事件总线上注册一个新事件,当回调返回对象时,触发事件并调用该函数.
请考虑避免内存泄漏的好处.
在弱引用中保存回调/监听器不是一个好主意.看到
您可以使用事件总线在完成时"广播"异步操作的结果(在您的情况下为网络调用),并将其他对象(视图,片段,活动)注册到事件总线.注意事项:
特别是对于Retrofit的使用,如果您异步执行请求,请执行以下操作:
GitHubService service = retrofit.create(GitHubService.class);
Call<List<Repo>> repos = service.listRepos("octocat");
repos.enqueue(myCallback)
Run Code Online (Sandbox Code Playgroud)
然后,您必须记住在组件的生命周期完成时取消组件所做的所有调用.即onDestroy()的Activity,onDetach()的Fragment,onDetachFromWindow()的View:
repos.cancel();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |