跟我学Android之十四 Activity的生命周期
Posted teayear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我学Android之十四 Activity的生命周期相关的知识,希望对你有一定的参考价值。
本章内容
第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都会得到这些信息 lonCreate在第一次创建时也会执行 所以数据的恢复任务应该在onCreate写更好有时候,系统为了获得足够的内存会销毁后台的Activity 比如横竖屏切换时 销毁时,系统会存储一些信息(执行onSaveInstanceState) 可以通过程序存储必要的信息 在重新启动Activity时会传回这些信息 •onRestoreInstanceState和onCreate都会得到这些信息 •onCreate在第一次创建时也会执行 •数据的恢复任务应该在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的生命周期的主要内容,如果未能解决你的问题,请参考以下文章