Android - 重构值

Android - Refactoring value

我有以下问题: 我在包含许多 Activity 和 Fragment 的所有应用程序中使用来自主 activity 的静态字节 [],我称之为 MA.bytearray(其中 MA 是 Activity 的名称)。好吧,问题是当我暂停我的应用程序并恢复它时,该值为 null,在我看来这是非常正常的,因为活动的生命周期。因此,我决定用这个静态字节 [] 创建一个 Class,它的作用类似于数据库,但我在我的应用程序中使用了太多次 MA.bytearray。有没有办法将引用从 MA.bytearray 重构为 DB.bytearray ?

你用的是什么IDE,这可以在Android studio 中完成,Eclipse 不清楚。 Anyway 如果你有一个静态值,它在 activity 生命周期中不会受到影响,它取决于 class 本身,只要它至少被使用过一次,它就会留在内存中直到进程被杀死。 我猜是在 activity 的某处你重新初始化了值而不检查它是否已经设置,所以你覆盖它,试图找到问题所在。 这也正是为什么使用静态值被认为是不好的原因,我建议您改为在扩展应用程序的 class 中使用 public,而不是静态参数,在您的清单中添加在具有相关 class 名称的应用程序选项卡下添加:android:name=".MyApplication" 标记,每当您需要访问该值时,使用 (MyApplication)getApplication() 获取应用程序实例以访问 public变量。

先写这个:

class MA ... {
    static byte[] bytearray = DB.bytearray;
}

然后使用 IDE 重构工具内联 MA.bytearray 字段。