跟我学Android之十四 Activity的生命周期

视频课:https://edu.csdn.net/course/play/7621

本章内容

第1节 Activity生命周期

第2节  列表Activity

本章目标

掌握Activity的生命周期

熟练掌握生命周期回调方法的执行时刻。

熟练掌握生命周期方法的应用。

熟练掌握ListActivity的应用。

Activity介绍

l对于任何一个Android应用程序来讲,Activity类都是其核心组成部分。许多时候,在应用程序中,你将会为每一个屏幕显示定义和实现一个Activity。

例如,一个简单的游戏应用程序可能会包含以5个Activity:

Activity的生命周期

Android操作系统允许同时运行多个应用程序,但同一时间只能有一个Activity处于前台

Android操作系统跟踪所有运行的Activity对象,并将这些对象放进一个Activity栈中,当一个新的Activity启动时,处于栈顶的Activity将会暂停,而这个新的Activity则放入栈顶。当这一新的Activity完成时,它从栈中被移除,而先前的Activity则又回到栈顶

l与独立运行的应用程序不同,Activity没有main函数

lActivity在生命周期的不同阶段将会执行不同的回调函数

l常用的回调函数如下:

ØonCreate():初始化用户界面相关内容

ØonStart()

ØonResume():初始化和接收Activity数据

ØonPause():停止、保存和释放Activity数据

ØonStop()

ØonRestart()

lActivity只会停留在Resumed、Paused、Stopped三种状态

l其他状态都会在回调函数执行完成之后立刻进入下一个状态

·

u通过桌面图标启动的Activity必须用<intent-filter>声明如下:

<activity  android:name=".MainActivity“  android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

一个应用中如果没有定义MAIN或者LAUNCHER的Activity,主界面和应用菜单中都不会出现该应用的图标,整个Activity的运行过程中onCreate只运行一次,应该在onCreate中初始化用户界面相关的内容

一个正在运行的应用遇到如下情况时将会暂停(执行onPause),当一个半透明的Activity打开时,比如,某个后台服务弹出了一个对话框,此时当前的Activity被部分遮挡

当Activity从后台再次被切换到前台来的时候(执行onResume)

在应用进入暂停状态时,onPause回调函数将执行,在onPause中应该执行适当的资源释放任务,比如,释放摄像头资源停止视频播放,但不要在onPause中执行耗时操作,比如保存当前状态任何长时间消耗CPU的动作

当前Activity常常会因为如下情况而停止(onPause->onStop),用户按下Home键,进入主界面

另一个Activity被启动,完全遮住了当前Activity

运行中有电话呼入,当另一个应用退出或用户选择了桌面图标重新启动时

onRestart、onStart、onResume会被顺序执行

uonStop方法中应该尽量释放所有资源

因为有些极端情况下,onDestroy可能不会执行

虽然在此之前,onPause会执行,但是耗时的操作还是应该写在这里

当Activity再次启动时

虽然onRestart会执行,但是恢复资源的操作应该写在onStart里面

因为第一次启动Activity是onStart也会执行

重新创建Activity

有时候,系统为了获得足够的内存会销毁后台的Activity

比如横竖屏切换时

销毁时,系统会存储一些信息(执行onSaveInstanceState)

可以通过程序存储必要的信息

在重新启动Activity时会传回这些信息

·onRestoreInstanceState和onCreate都会得到这些信息

·onCreate在第一次创建时也会执行

·数据的恢复任务应该在onCreate写更好

有时候,系统为了获得足够的内存会销毁后台的Activity

比如横竖屏切换时

销毁时,系统会存储一些信息(执行onSaveInstanceState)

这时,可以通过程序存储必要的信息

在重新启动Activity时会传回这些信息

这时onRestoreInstanceState和onCreate都会得到这些信息

lonCreate在第一次创建时也会执行

所以数据的恢复任务应该在onCreate写更好

ListActivity是一个默认包含一个ListView的Activity

写一个类继承ListActivity就获得了包含ListView的Activity

通过setListAdapter方法可以为ListView提供适配器

通过getListView可以获得ListView的对象

调用其中的setEmptyView的方法可以设置ListView为空时的显示视图

ListActivity默认注册了OnItemClickListener

需要处理事件时只需要覆盖onListItemClick方法就可以了

public class MyListActivityextendsListActivity{

@Override

protectedvoid onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

List<String>list = new ArrayList<String>();

list.add("北京");

list.add("上海");

list.add("广州");

ArrayAdapteradapter = newArrayAdapter(this,android.R.layout.simple_list_item_1,list);

setListAdapter(adapter);

}

}

首选项的作用

u首选项指的是应用程序的配置选项

u主要用来配置功能设置

Ø通常设置成用/不用、是/不是

Ø或者设置名称、选择项等等

u几乎所有的应用都需要使用配置

u配置选项的界面特点都是类似的

Ø如右图示例所示

uAndroid为配置选项提供了基础类

ØPreferenceActivity

来源:https://www.icode9.com/content-4-818851.html

(0)

相关推荐

  • Android应用程序----Activity生命周期(2)

    Android应用程序----Activity生命周期(1) Activity事件回调函数的调用顺序 Activity生命周期分类 Activity的生命周期可分为全生命周期.可视生命周期和活动生命周 ...

  • 怪想之圆周率学历史六十四 549(南朝)

    2020年,快要结束了 今天是27日,算一算还有四天时间,就要迎接崭新的一年了 明天就是28号了,或许又是平凡的一天 但平凡的一天,多多少少会有些不平凡的事情 时间的消逝 今天圆周率看历史 3.141 ...

  • 从零开始学八字(十四):食神之初级含义和象法

    今天,说说食神的初级含义和象法. 食神是日主所生之物,且与日主同阴阳,如甲见丙巳,乙见丁午,丙巳是甲的食神,丁午是乙的食神,其它类推即可. 食神,是日主所生,有父子之道,食神可生财,以供养生父,所以命 ...

  • 怪想之圆周率学历史五十四 841(唐朝)

    坏人,放下屠刀立地成佛 真的可以成佛吗? 这里的坏人真的是那种十恶不赦的坏人吗? 可怜之人必有可恨之处 可恨之人必有可悯之处 相信真正的恶人只会下地狱 被迫拿起屠刀的,那并不是真正的坏人 好人不长寿, ...

  • 王扬—— 从分析解题过程学解题之十四

    王扬编著<从分析解题过程学解题-- 高考压轴题与数学竞赛题之关系探究> 哈尔滨工业大学出版社,2020 王扬老师的<从分析解题过程学解题--高考压轴题与数学竞赛题之关系探究>, ...

  • 中医传统经脉学古籍《十四经》

    十四经穴,穴位分类名.指十四经脉所属的穴位.简称经穴.在<黄帝内经>中已有分散记述,至<针灸甲乙经>已较系统,共载有双穴300,单穴49,合计349穴. 12经脉和任.督2脉合 ...

  • 学八字第二十四课:了解 其它天干地支旺衰的分析。

    学八字第二十四课:了解 其它天干地支旺衰的分析. 华朗易经  确定旺衰也可以用两派法进行分析: 用两派法进行分析,就是将四柱中的印绶.比劫合为一派,财官食伤 合为一派,看哪一派的数量多.力量强,是比劫 ...

  • 学八字第十四课:了解十神之劫财的性质和作用。

    学八字第十四课:了解十神之劫财的性质和作用. 华朗易经  劫财的人事含义是:同胞.朋友.同事,男人的劫财是姊妹,女人的 劫财是兄弟. 劫财的功能也是帮身旺,夺财,抗官杀,生食伤,泄印. 柱中有劫财的人 ...

  • 桑老师说论语——学而(十四)

    14.子曰:"君子食无求饱,居无求安.敏於事而慎於言.就有道而正焉!可谓好学也已!" --孔子说,君子吃饭不求为饱,居住的屋室不要求安逸.敏捷地处理各种事情,谨慎自己的言行.这样做 ...

  • 跟我学SpringCloud | 第十四篇:Spring Cloud Gateway高级应用

    Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程全采用以上版本 上一篇我们聊了Gateway和注册中心的使用,以及 G ...