java - Android——重构值(value)

标签 java android refactoring

我有以下问题: 我在所有包含许多 Activity 和 fragment 的应用程序中使用来自主 Activity 的静态 byte[],我将其称为 MA.bytearray(其中 MA 是 Activity 的名称)。问题是,当我暂停应用程序并恢复它时,该值为空,在我看来这是非常正常的,因为 Activity 是实时循环的。因此,我决定用这个静态 byte[] 创建一个类,它的作用就像一个数据库,但我在我的应用程序中使用了太多次 MA.bytearray 。有没有办法将引用从 MA.bytearray 重构为 DB.bytearray ?

最佳答案

你用的是什么IDE,这可以在Android studio中完成,不确定Eclipse。 无论如何,如果你有一个静态值,它在 Activity 生命周期中不会受到影响,这取决于类本身,只要它至少被使用过一个,它就会保留在内存中直到进程被杀死。 我猜想,在 Activity 的某个地方,您重新初始化该值,而不检查它是否已经设置,因此您覆盖它,尝试找出问题所在。 这也正是为什么使用静态值被认为是不好的原因,我建议您在扩展应用程序的类中使用公共(public)而不是静态参数,在 list 中添加: android:name =".MyApplication" 标签位于应用程序选项卡下并包含相关类名,每当您需要访问该值时,请使用 (MyApplication)getApplication() 来获取应用程序实例访问公共(public)变量。

关于java - Android——重构值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148334/

相关文章:

java - 当您将并发设置为 false 时,Quartz 是否会触发 "pile up"

android - RecyclerView只是显示ArrayList中的第一个元素

java - Android GSON POJO可选字段解析

java - 安卓工作室 3.1.4 : missing classes and uncorrect Blueprint displaying

objective-c - 在 XCode 4.3.2 中,当我运行 ARC 转换重构工具时,我所有的 "retain"属性选项都没有更改为 "strong"

c# - 是否可以重写此 C# 方法重复(Lambdas?委托(delegate)?)?

java.lang.ClassNotFoundException : org. sqlite.JDBC Androidstudio Java 模块

java - 如何获取本地文件的正确URI?

java - @Valid 注释在我的 DTO 上不起作用

c - 有哪些工具可以建议潜在的重构