Android基础知识-Activity

来源:互联网 发布:u盘怎么恢复数据 编辑:程序博客网 时间:2024/05/21 22:39

Activity概念:

作为四大组件之一,一般一个用户交互界面对应一个activity。一个应 用至少包含一个Activity。Activity是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件。

Activity生命周期:

官方文档图:
这里写图片描述
生命周期方法:onCreate(),onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart();
基本生命周期:onCreate->onStart->onResume->onPause->onStop->onDestory
是不是少了一个onRestart()方法呢?没错,我们看上图onRestart()方法在Activity调用onStop后,但是没有执行onDestroy,在再次启动此Activity时就会调用onRestart()。
横竖屏切换生命周期:
1、清单文件里的Activity不配置 android:configChanges属性时,切屏会重新调用各个生命周期,竖屏切横屏生命周期只调用1次,横屏切竖屏,生命周期会调用2次。
2、清单文件里的Activity配置android:configChanges=”orientation”时,切横屏,切竖都重新调用各个生命周期,而且只调用一次。
3、配置android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

Activity启动方式:

显式启动:

内部跳转,Activity在当前应用中
Intent intent = new Intent();
intent.setClass(XXActivity.class);
context.startActivity(intent);
外部跳转,调用外部程序的Activity
Intent intent = new Intent();
intent.setClassName(包名.XXActivity.class);
context.startActivity(intent);

隐式启动:

Intent intent = new Intent();
intent.setAction(XX);//XX代表某个Activity在清单文件中配置的 action信息
intent.setData(YY);//YY代表某个Activity在清单文件中配置的 data信息
context.startActivity(intent);

Activity启动模式(LaunchMode):

1、standard:每次激活Activity都会创建新的Activity实例,并放入任务栈中。
2、singleTop:如果任务栈的栈顶中恰好存在Activity的实例,就不在创建新的Activity实例,会重用该实例;否则,即使任务栈中即使存在Activity实例,但不在栈顶,都会创建新的Activity实例。
3、singleTask:如果任务栈中存在Activity的实例,就会重用该实例,而且会把该实例回到栈顶,因此会移出它上面的实例;如果不存在,才会重新创建实例。
4、singleInstance:该模式会在一个新的任务栈中创建Activity实例,并让多个应用共享该实例。一旦Activity实例存在于某个任务栈中,任何应用激活该Activity都会重用该任务栈中的实例。

0 0
原创粉丝点击