Android基础知识-Activity

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值