Android之Activity生命周期
2015-11-17 16:41
543 查看
Activity生命周期中的方法
①onCreate()
activity被创建的时候(此时会把UI中所有的控件画上去)调用。在这个方法中你应该做一些静态的设置,比如创建View(这就是为什么新建一个Android项目时的MainActivity中第一句话是setContentView(R.layout.activity_main);)、绑定数据到某些列表上(因为这个方法是所有生命周期方法中第一个被执行的方法,当然想打开activity就看到数据。如果使用http协议取出json数据,初始化控件应该放到onCreate()方法中)。这个方法中会传递一个Bundle
Object的对象,对象包含这个activity之前的一些状态,这些状态可以被捕获(Android的现场保护)。在onCreate()方法之后是onStart()方法
②onStart()
当activity变成用户可见的被调用。如果activity变成可见的则在onResumed()后被调用,或者调用onStop()方法,它就变成隐藏的。
③onRestart()
④onResumed()
调用之前activity开始和用户进行交互,并且,这个activity位于activity栈的顶端。只有当onRestart()、onStart()和onResumed()三个状态走完了,用户才可以进行交互。
案例:用事实在手机上运行,对activity生命周期描述:
打开手机,第一次运行程序的时候
--onCreate方法->>
--onStart方法->>
--onResume方法->>
手机锁屏之后
--onPause方法->>
--onStop方法->>
重新打开手机,看到应用程序
--onRestart方法->>
--onStart方法->>
--onResume方法->>
按手机回退键,退出程序
--onPause方法->>
--onStop方法->>
--onDestroy方法->>
①onCreate()
activity被创建的时候(此时会把UI中所有的控件画上去)调用。在这个方法中你应该做一些静态的设置,比如创建View(这就是为什么新建一个Android项目时的MainActivity中第一句话是setContentView(R.layout.activity_main);)、绑定数据到某些列表上(因为这个方法是所有生命周期方法中第一个被执行的方法,当然想打开activity就看到数据。如果使用http协议取出json数据,初始化控件应该放到onCreate()方法中)。这个方法中会传递一个Bundle
Object的对象,对象包含这个activity之前的一些状态,这些状态可以被捕获(Android的现场保护)。在onCreate()方法之后是onStart()方法
②onStart()
当activity变成用户可见的被调用。如果activity变成可见的则在onResumed()后被调用,或者调用onStop()方法,它就变成隐藏的。
③onRestart()
④onResumed()
调用之前activity开始和用户进行交互,并且,这个activity位于activity栈的顶端。只有当onRestart()、onStart()和onResumed()三个状态走完了,用户才可以进行交互。
案例:用事实在手机上运行,对activity生命周期描述:
打开手机,第一次运行程序的时候
--onCreate方法->>
--onStart方法->>
--onResume方法->>
手机锁屏之后
--onPause方法->>
--onStop方法->>
重新打开手机,看到应用程序
--onRestart方法->>
--onStart方法->>
--onResume方法->>
按手机回退键,退出程序
--onPause方法->>
--onStop方法->>
--onDestroy方法->>
测试代码如下:
public class MainActivity extends ActionBarActivity { private final String TAG = "MainActivity"; /** * 1、第一次被调用,仅仅被调用一次 2、初始化布局View或者绑定数据 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG, "--onCreate方法->>"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG, "--onStart方法->>"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG, "--onResume方法->>"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG, "--onPause方法->>"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG, "--onRestart方法->>"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG, "--onStop方法->>"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "--onDestroy方法->>"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
相关文章推荐
- Android下通过wpa_supplicant来测试wifi设备
- github上的优秀android开源项目
- Android 中即时聊天或者后台任务需要发送消息的一种解决方案.
- ant编译android项目
- android binder机制
- Android JSON数据的读取和创建
- android点击home键后,点击图标,重新启动第一个activity
- Android VideoView通过Intent.ACTION_VIEW播放视频(4)
- ListView显示与底下的控件重合了,如何解决
- Windows下将ImageMagick移植到Android平台
- Android AlertDialog淡入淡出动画
- Android基础入门教程——8.3.17 Canvas API详解(Part 2)剪切方法合集
- Android基础入门教程——8.3.16 Canvas API详解(Part 1)
- Android里面安装windows系统
- Android热更新实现原理
- Android之触屏事件
- android studio找不到打包好的apk
- Android磁盘管理-之vold源码分析
- 【android学习】targetSdkVersion与project.properties中的target的区别
- Android RecyclerView的使用