首页 > 其他分享 >每日总结2023-05-07

每日总结2023-05-07

时间:2023-05-07 22:13:53浏览次数:37  
标签:调用 07 05 创建 Activity 模式 实例 2023 栈中

说下Activity生命周期 ?

在正常情况下,Activity的常用生命周期就只有如下7个
  • onCreate():表示Activity正在被创建,常用来初始化工作,比如调用setContentView加载界面布局资源,初始化Activity所需数据等;
  • onRestart():表示Activity正在重新启动,一般情况下,当前Acitivty从不可见重新变为可见时,OnRestart就会被调用;
  • onStart():表示Activity正在被启动,此时Activity可见但不在前台,还处于后台,无法与用户交互;
  • onResume():表示Activity获得焦点,此时Activity可见且在前台并开始活动,这是与onStart的区别所在;
  • onPause():表示Activity正在停止,此时可做一些存储数据、停止动画等工作,但是不能太耗时,因为这会影响到新Activity的显示,onPause必须先执行完,新Activity的onResume才会执行;
  • onStop():表示Activity即将停止,可以做一些稍微重量级的回收工作,比如注销广播接收器、关闭网络连接等,同样不能太耗时;
  • onDestroy():表示Activity即将被销毁,这是Activity生命周期中的最后一个回调,常做回收工作、资源释放

 

 

 

Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢 ?

Activity A 启动另一个Activity B,回调如下
  • Activity A 的onPause() → Activity B的onCreate() → onStart() → onResume() → Activity A的onStop();
  • 如果B是透明主题又或则是个DialogActivity,则不会回调A的onStop;

说下onSaveInstanceState()方法的作用 ? 何时会被调用?

发生条件:异常情况下(系统配置发生改变时导致Activity被杀死并重新创建、资源内存不足导致低优先级的Activity被杀死
  • 系统会调用onSaveInstanceState来保存当前Activity的状态,此方法调用在onStop之前,与onPause没有既定的时序关系;
  • 当Activity被重建后,系统会调用onRestoreInstanceState,并且把onSave(简称)方法所保存的Bundle对象同时传参给onRestore(简称)和onCreate(),因此可以通过这两个方法判断Activity是否被重建,调用在onStart之后;

说下 Activity的四种启动模式、应用场景 ?

  • standard标准模式:每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在,此模式的Activity默认会进入启动它的Activity所属的任务栈中;
  • singleTop栈顶复用模式:如果新Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,同时会回调onNewIntent方法,如果新Activity实例已经存在但不在栈顶,那么Activity依然会被重新创建;
  • singleTask栈内复用模式:只要Activity在一个任务栈中存在,那么多次启动此Activity都不会重新创建实例,并回调onNewIntent方法,此模式启动Activity A,系统首先会寻找是否存在A想要的任务栈,如果不存在,就会重新创建一个任务栈,然后把创建好A的实例放到栈中;
  • singleInstance单实例模式:这是一种加强的singleTask模式,具有此种模式的Activity只能单独地位于一个任务栈中,且此任务栈中只有唯一一个实例;

 

 

说下 Activity跟window,view之间的关系?

 

  • Activity在创建时会调用 attach() 方法初始化一个PhoneWindow(继承于Window)每一个Activity都包含了唯一一个PhoneWindow
  • Activity通过setContentView实际上是调用的 getWindow().setContentView将View设置到PhoneWindow上,而PhoneWindow内部是通过 WindowManageraddViewremoveViewupdateViewLayout这三个方法来管理View,WindowManager本质是接口,最终由WindowManagerImpl实现

 

 

标签:调用,07,05,创建,Activity,模式,实例,2023,栈中
From: https://www.cnblogs.com/JJTyyds/p/17380271.html

相关文章

  • LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。往期周赛回顾:LeetCode单周赛第343场·结合「下一个排列」的贪心构造问题周赛概览T1.找出不......
  • 【游记】PKUSC2023
    Day0早起赶到火车站,做了4.5h的复兴号从杭州东到北京南,然后做了1h地铁才到酒店,去对面吃了肉夹馍,某些人9元买了7元优惠券/cf。下午和晚上在酒店魔域,好像他们夜骑去面基了。。10点半还打了个div2,花了20min写了个E,抢了一血,很爽。口胡了个F就睡了(但好像假了?。Day......
  • 2023.5.7 职工管理系统
    1//boss.h2#pragmaonce3#include<iostream>4usingnamespacestd;5#include"worker.h"6classBoss:publicWorker7{8public:9//构造函数10Boss(intid,stringname,intdId);11//显示个人信息12voidshowInfo();......
  • 2023.5.7编程一小时打卡
    一、问题描述:编写程序提示用户输入一个班级中的学生人数n,再依次提示用户输入n个人在课程A中的考试成绩,然后计算出平均成绩显示出来。二、解题思路:首先,定义一个vector类型的成员,通过用户输入的人数进行对vector的数据添加,最后进行加和求其平均值。 三、代码实现:1#include......
  • 2023ccpc湖北省赛/2023 Hubei Provincial Collegiate Programming Contest个人题解
    2023HubeiProvincialCollegiateProgrammingContestAPrimeMagicWalkAlonehasasequence\(a_1,a_2,...,a_n\),andhecanuseamagiconit:Chooseanoddprimenumber\(p\)andaninterval\([l,r]⊆[1,n]\)satisfying\(r−l+1=p\),andthenadd......
  • 2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返
    2023-05-07:给你一个大小为nxn二进制矩阵grid。最多只能将一格0变成1。返回执行此操作后,grid中最大的岛屿面积是多少?岛屿由一组上、下、左、右四个方向相连的1形成。输入:grid=[[1,0],[0,1]]。输出:3。来自亚马逊、谷歌、微软、Facebook、Bloomberg。......
  • 2023湖北省赛
    2023湖北省赛M解方程voidsolve(){llx,y;cin>>x>>y;boolok=false;llz=x*1000-y;for(lla=0;a<=1000000;a++){llt=a*1000-z;if(t%1500==0){llc=t/1500;......
  • 2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返
    2023-05-07:给你一个大小为nxn二进制矩阵grid。最多只能将一格0变成1。返回执行此操作后,grid中最大的岛屿面积是多少?岛屿由一组上、下、左、右四个方向相连的1形成。输入:grid=[[1,0],[0,1]]。输出:3。来自亚马逊、谷歌、微软、Facebook、Bloomberg。答案2023......
  • 【2023.05.07】再见,福州大学
    五一回了一趟学校,想见见学弟,以及收拾一下宿舍第一天晚上九点多差不多到学校,到学校的第一件事就是去和学弟吃烧烤嘛,两年没见的学弟了,之前他因为个人原因所以休学了一年,现在看到他现在好多了,我很开心还见到了吧主和一些学弟网友,很开心网上大家都自称鼠鼠,没想到线下都是帅哥,交流......
  • P9166 [省选联考 2023] 火车站
    P9166[省选联考2023]火车站这道题很抽象,有这么几点注意事项1,火车必须走到尽头才可以停下,所以答案一定会出于输入的这些端点2,火车只能往一个方向走,不可以在中途换向那么这题怎么处理?不会真的要一波操作然后把所有答案排个序吧?我选择标记法!标记答案,省去了排序的过程。那么......