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

跟我学Android之十四 Activity的生命周期,第1张

概述视频课:https://edu.csdn.net/course/play/7621本章内容第1节 Activity生命周期第2节 列表Activity本章目标掌握Activity的生命周期熟练掌握生命周期回调方法的执行时刻。熟练掌握生命周期方法的应用。熟练掌握ListActivity的应用。Activity介绍l对于任何一个Android应用程序来讲

视频课: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打开时,比如,某个后台服务d出了一个对话框,此时当前的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


总结

以上是内存溢出为你收集整理的跟我学Android之十四 Activity的生命周期全部内容,希望文章能够帮你解决跟我学Android之十四 Activity的生命周期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1052583.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存