今天参照视屏开始学习activity的生命周期
今天在创建项目时发生点小插曲,因为之前一直创建的是4.1版本的,今天创建的是2.1版本的,在运行时发生了个错误 :error opening trace file: No such file or directory (2) 错误,查了一下才知道是因为项目版本与模拟器版本不匹配导致的,修改之后正常运行。
在android的开发文档中也写了activity生命周期:
启动一个新的activity会依次调用onCreate(),onStart(),onResume(),当这个activity第一次被调用的时候会调用onCreate()方法,当这个activity能被我们看到的时候调用onStart(),当这个activity能够获得用户的焦点的时候调用onResume().
当我们从第一个activity进入第二个activity时,会先调用第一个activity的onPause()方法,onPause()从一个activity进入另一个activity时调用;
再调用第二个activity的onCreate(),onStart(),onResume(),再调用第一个activity的onStop()方法,但是如果第二个activity没有完全遮挡住第一个activity,则不会调用onStop()方法,onStop()——当这个activity处于不可见的状态时调用,
当我们从第二个activity返回到第一个activity时,会先调用第二个activity的onPause()方法,再调用第一个activity的onRestart()方法,再调用onStart(),onResume(),再调用第二个activity的onStop(),onDestroy().此时第二个activity被销毁。当我们在activity中调用finish()或者系统资源不够用时调用onDestroy()。
今天在写代码时还犯了个错误,我这代码是这样的:
protected void onCreate(Bundle savedInstanceState) {
System.out.println("activity_two:onCreate");
Intent intent=getIntent();
String butvalue=intent.getStringExtra("butvalue");
TextView textView=(TextView) findViewById(R.id.twotext);
textView.setText(butvalue);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}
我在第二个activity中去取从第一个activity中传过来的值,但一直报空指针,后来调试发现textView为空,仔细看了下代码发现最后两行代码放错了位置,把最后两行代码移动最前面后问题解决。
以后千万不能再犯这样的错误!!!