作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个有很多 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/
我是一名优秀的程序员,十分优秀!