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 字段。
我有以下问题: 我在包含许多 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 字段。