【发布时间】:2015-11-19 00:45:21
【问题描述】:
根据我对 Java 的理解,静态块应该在任何其他函数之前执行。
我有一个调用静态函数的静态块,都在 MyClass.java 类中,它使用 SharedPreferences 对象。
MyClass 由 MyApplication(扩展应用程序)使用,位于 onCreateMethod 的某处。
static {
doSomethingStaticFirst();
}
private static void doSomethingStaticFirst() {
//Log(DO_SOMETHING_STATIC_FIRST)
UserPreferences userPreferences = new UserPreferences(MyApplication.getInstance().getApplicationContext());
}
但是我按顺序看到以下日志:
- MyApplication onCreate 方法
- DatabaseManager onUpdate(以防数据库版本增加)
- DO_SOMETHING_STATIC_FIRST
不先执行静态块有什么特殊原因吗?会先执行MyApplication onCreate 方法吗?
【问题讨论】:
-
您显示的代码属于哪个类?是在
MyApplication吗?是在DatabaseManager吗?是在别的地方吗? -
其他地方,在 MyApplication 使用的类中
标签: android static oncreate static-block