}
public class NextActivity extends Activity{
public NextActivity() {
// TODO Auto-generated constructor stub
System.out.println("Next");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
MainActivity main=new MainActivity();
main.updateUI();
}
}
以上是2个Activty 打印出书的结果为
MainActivity
onCreate
NextActivity
onCreate
然后程序就会报错异常因为在NextActivty中使用了 MainActivity main=new MainActivity();
main.updateUI(); 重新创建了一个MainActivty对象。但是由于 我们的textVIew控件没有被初始化,所以会抛出null指针
这个是因为android的activty启动机制有关的。如果通过new MainActivty就能打开一个actity的话显然不安全也不现实。所以只能使用startActivty去打开activty
然后他就回去加载指定的activty类。然后开始初始化执行activty待定的初始化函数。如果是new Mainactyivty 的话 他的actity那些方法就不会被执行。只能被当做一个最简单的类的初始化来处理。