java - 应用类中的内部类,对吗?

标签 java static inner-classes android

我在一个有很多 Activity 的应用程序中工作,并且大多数 Activity 共享多个对象,所以我通过扩展 android Application 类来创建 MyApplication 类来存储要共享的选定对象。但是在提供程序/帮助程序类中访问这些对象时我感到很不舒服,因为提供程序需要上下文来获取应用程序实例

所以我计划在 MyApplication 类中创建名为 SelectionProvider 的静态类来存储选定的对象,然后我可以以静态方式访问这些对象而无需为 MyApplication 创建实例。

带有静态内部类的MyApplication类如下

class MyApplication extends Application {
    public static final String TAG = "MyApplication";



    public static class SelectionProvider {
        private static UserObj userObj;
        private static TownObj townObj;
        private static StoreObj storeObj;

        public static UserObj getUserObj() {
            return userObj;
        }

        public static setUserObj(UserObj userObj) {
            this.userObj = userObj;
        }

        public static TownObj getTownObj() {
            return townObj;
        }

        public static setTownObj(TownObj townObj) {
            this.townObj = townObj;
        }

        public static StoreObj getStoreObj() {
            return storeObj;
        }

        public static setStoreObj() {
            this.storeObj = storeObj;
        }
    }
}

这是正确的方法吗?如果不是,为什么?

所选对象(存储在内部类中)会在整个应用程序生命周期内驻留还是会在任何地方销毁?

最佳答案

只要您没有 multiple processes,这个方法或其他地方的静态值应该可以正常工作并在应用程序的整个生命周期内持续存在。需要访问此对象的运行。如果是这种情况,您应该使用 Service处理交易。

关于java - 应用类中的内部类,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564057/

相关文章:

java - Android 应用程序仍然保持 Activity 状态,没有任何 Activity

c# - 为什么我需要使用 C# 嵌套类

Java 内部类设计的好处

Java 枚举静态最终实例变量

php - PHP中静态类的不同实例

c# - 从另一个静态类访问表单方法

java - 类变成内部类时Maven编译失败(虽然Eclipse很好)?

java - Struts 2 如果-否则-如果

Java - 混淆字母

java - JVM 是否交换堆?