public class MainActivity extends Activity {
private TextView tv;
public MainActivity() {
// TODO Auto-generated constructor stub
System.out.println("MainActivity");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate");
tv=(TextView)findViewById(R.id.tv);
startActivity(new Intent(this,NextActivity.class));
}
public void updateUI(){
tv.setText("update");
}

}


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那些方法就不会被执行。只能被当做一个最简单的类的初始化来处理。

更多相关文章

  1. android googlemap的location报空指针解决案例
  2. Android开发:Activity初始化时屏蔽EditText的自动获取焦点的事件
  3. Android中添加布局和初始化布局总结
  4. android appwidget service的初始化
  5. Android初始化语言 (init.*.rc、init.conf文件格式)
  6. android注解初始化view
  7. Android 应用初始化及窗体事件的分发
  8. Android NullPointerException解决方法(空指针异常)
  9. [android]初始化代码仓库时出现“OSError: [Errno 2] No such fi

随机推荐

  1. android广播总结
  2. Linux Out of memory error
  3. Android中关于setTitle(CharSequence tit
  4. 安卓编译环境设置
  5. Android切换主题
  6. Android(安卓)Actitity的生命周期
  7. ListView继续学习 长按显示菜单menu
  8. Universal Image Loader for Android(安
  9. ant打包游戏时报错
  10. Adroid Studio基于TCP协议的通信