gpt4 book ai didi

java - 安卓Java : best practice for common code in overrides for all Activities

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:38 26 4
gpt4 key购买 nike

我不完全确定以下方法是好是坏。如果更有经验的人可以添加他/她的 2 美分,那就太好了 :)

我有一个包含很多 Activity 的应用程序。在这种情况下,它们都必须能够使用 LocalBroadcastManager 从动态注册的接收器(在 onCreate/Resume/Pause ....)接收消息,并运行 AsnycTask 来完成一些工作并显示 ProgressDialog。所有 Activity 所需的代码(Receiver 和 AsnycTask)完全相同。

其中一项服务可以随时发送消息。

为此,我创建了一个 Activity,它实现了所有这些(在 oncreate/pause/resume 等中注册和注销接收器并包含此 AsyncTask)

所有其他 Activity 都应该扩展此 Activity,因此我不必担心将额外代码放入它们各自的所有 onCreate/onResume/onPause 方法中以调用任何辅助类/方法(并且忘记这样做)。

这个方法可以吗?我问是因为我曾经偶然发现一个关于从自定义类扩展 Activity 的类似问题(遗憾的是我再也找不到它了),一个答案表明它会导致大量内存泄漏而没有解释原因。

非常感谢!

最佳答案

我使用 BaseActivity 类取得了很大的成功,我项目中的所有其他 Activity 都从该类扩展。因此,我还没有遇到任何内存问题。

另一种方法是将您的常用功能放在接口(interface)中,然后让您的 Activity 根据需要实现这些功能。这里对这两种方法的优点进行了一些非常好的讨论:Interface vs Base class

关于java - 安卓Java : best practice for common code in overrides for all Activities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com