Activity活动生命相关

启动与结束

页面跳转:

startActivity(new Intent(this,xxxx.class));

关闭当前界面返回上一界面

finish();

//这里我在使用finish遇到一个问题,同时设定了三个活动ABC,A作为主界面启动BC两个活动;其实B为简单的界面演示,C为计算器

//我为两个活动分别添加了除ID以外完全相同的参数,但是在点击返回按钮时(此时B点击监听器内仅包含finish,而C中包含一些包括计算器相关的监听事件)

//B会正常返回A页面,而在C中会可能直接导致程序崩溃,并且会让app图标在桌面上消失

//个人感觉可能和生命周期有关,不太清楚,后续留着问老师

 

 

 activity启动模式

1.standard

该模式是默认模式,类似于栈的方式

2.singleTop

该模式为栈顶复用模式,大概方法基于栈,但是如果要创建的新activity和栈顶的activity相同,那么将不会创建

3.singleTask

该模式与singleTop类似,不同的是,如果新创建的activity与栈内某一activity相同,将会导致新activity不被创建,依次弹出activity直到到达本activity

应用场景:主界面/耗费系统资源的activity

4.singleInstance

该模式的栈内存为1,但是会产生多个栈,如果要创建已经的activity,那将会唤醒旧的activity

 

 

如果我在创建了AB两个页面,两个页面来回跳转,那么栈中会生成很多个ABABABA的activity 如何完善这一问题

//首先创建一个意图对象

Intent intend = new Intent (this,XX.class);

//栈中存在待跳转的活动实例时,重新创建,并清楚该活动上部的活动实例

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

 

 

登录成功不再进行登录问题:

登录成功之后信息就会被记录,每次登录时信息都不用再次输入

//启动标志为:跳转到新页面时,栈中原有的页面被清空,同时会创建新的栈

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG.ACTIVITY_NEW_TASK);

 

 

 

 代码内可以进行动态修改

posted @ 2023-01-27 16:25  天启A  阅读(18)  评论(0)    收藏  举报