一段时间花在错误的狩猎之后事实证明:
public class MainActivity extends BaseActivity { // BaseActivity extends Activity
public MainActivity() {
super();
getApplicationContext(); // NPE here
}
}
为什么呢? 这哪里是记录?
升级Froyo
一段时间花在错误的狩猎之后事实证明:
public class MainActivity extends BaseActivity { // BaseActivity extends Activity
public MainActivity() {
super();
getApplicationContext(); // NPE here
}
}
为什么呢? 这哪里是记录?
升级Froyo
等待结束onCreate
调用此方法。
public class MainActivity extends BaseActivity {
public onCreate(Bundle savedInstanceState) {
super(savedInstanceState);
getApplicationContext(); //activity has a context now
}
}
只是为了得到这是怎么回事的感觉。 活动 延伸ContextThemeWrapper延伸ContextWrapper从其活动继承getApplicationContext()
ContextWrapper 实现它 :
@Override
public Context getApplicationContext() {
return mBase.getApplicationContext(); // mBase is a Context
}
在仅公共构造的ContextWrapper
是:
public ContextWrapper(Context base) {
mBase = base;
}
在ContextThemeWrapper
我们有 :
public ContextThemeWrapper() {
super(null);
}
而且由于活动没有定义一个明确的构造函数的构造上述被称为- mBase == null
在活动的构造-热潮。
从链接4.2.2_r1