Android第一行代码 第二章学习 2

Activity的生命周期

一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈。

任务状态:运行状态、暂停状态、停止状态、销毁状态

运行状态:当一个活动位于返回栈的栈顶时,这时活动处于运行状态。

暂停状态:当一个活动不再处于栈顶位置,但仍然可见时,活动就进入了暂停状态。

停止状态:当一个活动不再处于栈顶位置,并且完全不可见时,就进入了停止状态。

销毁状态:当一个活动从返回栈移除后就变成了销毁状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3QAkxBgu-1692022936007)(ACtivity_Life.png “ACtivity的生命周期”)]

活动被回收,此前数据全部消失,需要使用Activity中的onSaveINstanceState()回调方法,这个方法可以保证活动在回收之前 一定会被调用。

protected void onCreate(Bundle savedInstanceState){
	super.onCreate(savedINstanceState);
	setContentView(R.layout.first_layout);
	if(savedInstanceState != null){
		String tempData = savedINstanceState.getString("data_key");
	}
}

@override
protected void onSaveInstanceState(Bundle outState){
	super.onSaveInstanceState(outState);
}

Activity的启动模式

android:launchMode属性:standard、singleTop、singleTask、singleInstance

standard:每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。

singleTop:在启动活动时,如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。

singleTask:每次启动活动时,系统会首先在返回栈中检查是否存在该活动的实例,如果发现存在则直接使用,并把在该活动之上的所有活动全部出栈,如果没有就会创建一个新的活动实例。

singleInstance:与其他三个不同,指定为singleInstance的活动会启动一个新的返回栈来管理活动。解决了共享活动实例的问题。

Bundle

在Android中,可以将要保存的数据放在Bundle对象中,然后通过Intent提供的putExtras()方法将要携带的数据保存在Intent中。
Bundle是一个键值对组合,用以保存要携带的数据包。

MainActivity中:
...
Intent intent = new Intent(MainActivity.this, AddressActivity.class);
Bundle bundle = new Bundle();
bundle.putCharSequence("name",name);
...
intent.putExtras(bundle);
startActivity(intent);
...

AddressActivity中:
...
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");

参考:《零基础学Android》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值