
视频课: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的生命周期所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)