Activity组件

1.Activity的启停和结束

从当前页面跳转到新页面:startActivity(new Intent(原页面.this,目标页面.class));

从当前页面回到上一个页面相当于关闭页面:finish();

2.Activity的生命周期

onCreate:创建活动,把页面布局加载进内存,进入初始状态;

onStart:开始活动,把活动页面显示在屏幕上,进入就绪状态;

onResume:恢复活动进入活跃状态,能够与用户交互,如点击输入;

onPause:暂停活动,页面进入暂停状态,用户无法交互;

onStop:停止活动,此活动页面将不在屏幕上显示;

onDestroy:销毁活动,此时回收活动占用的资源,把页面从内存中清楚掉;

onRestart:重启活动,处于停止状态的活动如果想重新开启,无需onCreate重复创建,而是走onRestart的重启过程;

onNewIntent:重复已有的活动实例;当一个activity已经启动过,并且存在当前应用的activity任务栈中,启动模式为singleTask,singleInstance或singleTop(此时已经在任务栈顶端),那么启动或回到这个activity的时候,不会创建新的实例,也就是不会执行OnCreate方法,而是执行onNewIntent方法。

3.Activity的启动模式

1.在清单文件AndroidManifest中设置:android:launchMode="standard"

  • 默认启动模式:standard,启动的activity会依次按照启动顺序被依次压入Task栈中;

  • 栈顶复用模式:singleTop,如果栈顶activity是要新建的activity,那么就不会创建新的activity;

  • 栈内复用模式:singleTask,如果栈内存在目标activity实例,则将task内对应的activity实力之上的所有activity弹出,并将对应activity置于栈顶,获得焦点;

  • 全局唯一模式:singleInstance,为目标activity创建一个新的Task栈,并让目标activity获得焦点,如果已经创建过目标activity,则不会创建新的task,而是直接唤醒创建过的activity;

2.在java代码中通过Intent动态设置:Intent.setFlags();

Intent类的启动标志

说明

Intent.FLAG_ACTIVITY_NEW_TASK

类似于standard,不同处在,如果原来不存在活动栈,会创建一个新栈

Intent.FLAG_ACTIVITY_SINGLE_TOP

等同于singleTop

Intent.FLAG_ACTIVITY_CLEAR_TOP

类似于singleTask,但是singleTask采用onNewIntent方法,而FLAG_ACTIVITY_CLEAR_TOP采取先调用onDestroy再调用onCreate来创建新任务

Intent.FLAG_ACTIVITY_NO_HISTORY

与standard类似,但是不保存新启动的活动实例,这样下次无论以何种方式再启动该实例,也要走standard模式的完整流程

Intent.FLAG_ACTIVITY_CLEAR_TASK

跳转新页面时,栈中原有实例都被清空;需要结合FLAG_ACTIVITY_NEW_TASK使用,即setFlags方法参数为“ Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK”

示例:

 

public class JumpFirstActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_jump_first); Button b1=findViewById(R.id.b1); b1.setOnClickListener(this); } @Override public void onClick(View view) { Intent i1=new Intent(this, JumpSecondActivity.class); i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i1); } }

4.在活动之间传递消息

  4.1组成部分

元素名称

设置方法

说明与用途

Component

setComponent

组件,指定意图的来源与目标

Action

SetAction

动作,指定意图的动作行为

Data

setData

即uri,指定动作要操作的数据路径

Category

addCat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值