Activity是Android四大组件之一。一个Activity负责管理一个界面。

创建一个Activity:

New -> Activity -> 选择要创建的Activity类型(一般我们选Empty/Basic Activity)

AS会自动在AndroidManifest.xml文件中注册新建的Activity,不用我们手动注册。

Activity的生命周期分为5种状态:

1、启动状态

启动状态很短,启动后便会进入运行状态。

2、运行状态

Activity处于屏幕最前端,可见、有焦点,可与用户交互。

Android系统会尽可能保持处于运行状态的Activity的运行,如果内存不足,Android会优先销毁栈底的Activity,来保证运行状态的Activity的运行。

3、暂停状态

Activity对用户仍然可见,但它无法获取焦点,不会响应用户的操作。

例如:Activity上覆盖了一个透明的或者非全屏的Activity时,被覆盖的Activity就处于暂停状态。

4、停止状态

Activity完全不可见,但任然保留着当前状态和成员信息。

如果系统内存不足,停止状态的Activity很容易被销毁。

5、销毁状态

Activity被清理出内存。

Activity生命周期对应的方法:

1、onCreate()    在创建Activity时调用,做一些初始化设置。此方法用得很多。

2、onStart()    在Activity即将可见时调用

3、onResume()  在Activity获取焦点、开始可见时调用

4、onPause()  当Activity被其它Activity覆盖或锁屏时调用

5、onStop()    当Activity对用户不可见时调用

6、onDestroy()     在Activity销毁时调用

7、onStart()    在Activity从停止状态再次启动时调用

当Activity执行onPause()进入暂停状态,重新回到前台运行时会先调用onResume();

当Activity执行onStop()进入停止状态不可见,重新回到前台运行时会先调用onRestart();

停止状态的Activity很容易被销毁,内存不足时,暂停状态的Activity也可能被销毁,如果暂停、停止状态的Activity已被销毁,重新回到前台运行会先调用onCreate()。

在进行横竖屏切换时,会先销毁Activity,再重建Activity。

如果不希望横竖屏切换时销毁重建Activity,可以在AndroidManifest.xml的该Activity中通过configChanges属性设置:

 <activity
android:name=".Activity2"
android:label="@string/title_activity_2"
android:theme="@style/AppTheme.NoActionBar"
android:configChanges="orientation|keyboardHidden|screenSize"> <!-- 横竖屏切换时不销毁重建此Activity-->
6 </activity>

如果希望某个界面一直处于横屏/竖屏状态,不随手机的晃动而改变,可以在AndroidManifest.xml的该Activity中通过 screenOrientation  属性设置:

 <activity
android:name=".Activity2"
android:label="@string/title_activity_2"
android:theme="@style/AppTheme.NoActionBar"
android:screenOrientation="portrait"> <!-- 一直处于竖屏状态-->
</activity>

竖屏是portrait,横屏是landscape。

Activity的创建、生命周期的更多相关文章

  1. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

  2. Activity完整的生命周期

    首语:群里看到一位网友说:你能说出Activity的完整生命周期吗?看到这句话,我也在反思自己,我也是个fresh,所以想找个时间仔细的扒一扒Activity生命周期. 首先拿一张简单而又复杂的生命周 ...

  3. 多个Activity交互的生命周期:

    一.多个Activity交互的生命周期: A Activity打开B Activity的时候:        A Activity                    B Activity     ...

  4. 三张图让你高速明确activity与fragment生命周期的异同点

    第一张图:activity的生命周期 第二张图:fragment的生命周期 第三张图:activity与fragment生命周期对照 补充:假设你还是不明确,请翻译一下你不理解的相应单词. ----- ...

  5. Activity组件的生命周期

    一.Activiy组件的三个状态: 1.前台状态(active) : 在屏幕的最上层,页面获得焦点,可以响应用户的操作2.可视状态(paused) : 不能与用户交互,但是还存在于可视区域内,它依然存 ...

  6. 浅谈Android的Activity运行流程(生命周期)

    关于Android的Activity运行流程,我们可以写一些程序来直观的查看Activity的运行流程.在这里我们使用Log工具来获取Activity运行日志.假如我们新建一个Android项目,Pr ...

  7. android:activity活动的生命周期

    掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命 周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的 游刃有余.你的应用程序将会拥有 ...

  8. Android零基础入门第75节:Activity状态和生命周期方法

    前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还需要学习了解更多. 生命周期就是一个对象从创建到销毁的过程,每一个对象 ...

  9. Activity与Service生命周期

    一. Activity 先展示一张Activity的生命周期图: 1.1 Activity状态 只有下面三个状态是静态的,可以存在较长的时间内保持状态不变.(其它状态只是过渡状态,系统快速执行并切换到 ...

  10. Activity详解生命周期(Android)

    Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之 ...

随机推荐

  1. XMU C语言程序设计实践(4)

    以下实验二选一. 1.使用队列实现迷宫算法,找到最短路径. 2.实现顺序队列和链队列的所有基本操作,InitQueue(&Q):DestroyQueue(&Q):ClearQueue( ...

  2. java上传文件,提交表单必须要设置enctype="multipart/form-data"

    表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlenc ...

  3. WinDbg 查看静态变量

    有如下Class.若想查看静态变量内容.因为静态变量和类绑定,仅需要查看类即可. namespace ConsoleApplication13 { class Program { public sta ...

  4. ping 和 远程桌面 与防火墙的关系

    现象: 初始化服务器时,人们为了方便,常常关闭防火墙,这样做很危险.我们经常遇到问题是,防火墙一旦打开,ping和远程桌面就会有问题. 有时ping不通,但能远程:但有时ping通,又远程不了:有时都 ...

  5. eclipse新建安卓项目helloworld

    第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclipse . 第四步:下载安装Android SDK (下载Android SDK Manager工具, ...

  6. WAS域名解析问题

    1.如果dmgr和his在一台机器上,但web服务器用的是app服务器 如下图: 插件都处理完成. 这时候,通过外网域名访问时,出现如下情况 或者 说明:ihs服务器上webserver1的文件Plu ...

  7. hash与map的区别联系应用(转)

    一,hashtable原理: 哈希表又名散列表,其主要目的是用于解决数据的快速定位问题.考虑如下一个场景. 一列键值对数据,存储在一个table中,如何通过数据的关键字快速查找相应值呢?不要告诉我一个 ...

  8. 禁止屏幕旋转并同时解决以至于导致Activity重启的方法

    1.禁止屏幕旋转在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation属性. //landscape(横向)port ...

  9. java内存管理--栈、堆和常量池

    今天有朋友问java中String[] str = s.split(",")的内存分析,于是开始查资料并测试.首先,发现在java的内存管理中"常量池"是个很奇 ...

  10. 【HDU 3555】 Bomb

    [题目链接] 点击打开链接 [算法] 数位DP [代码] #include<bits/stdc++.h> using namespace std; #define MAXL 15 type ...