乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第56页

书籍名:《Android从入门到精通》    作者:明日科技


销毁状态  该Activity结束,或Activity所在的Dalvik进程结束

在了解了Activity的4个重要状态后,我们来看图5.1(参照Android官方文档),该图显示了一个Activity的各种重要状态,以及相关的回调方法。



图5.1 Activity的生命周期及回调方法

在图5.1中,用矩形方块表示的内容为可以被回调的方法,而带底色的椭圆形则表示Activity的重要状态。从该图可以看出,在一个Activity的生命周期中有以下方法会被系统回调。

[√]onCreate()方法:在创建Activity时被回调。该方法是最常见的方法,在Eclipse中创建Android项目时,会自动创建一个Activity,在该Activity中,默认重写了onCreate(Bundle  savedInstanceState)方法,用于对该Activity执行初始化。



[√]onStart()方法:启动Activity时被回调,也就是当一个Activity变为显示时被回调。



[√]onRestart()方法:重新启动Activity时被回调,该方法总是在onStart()方法以后执行。



[√]onPause()方法:暂停Activity时被回调。该方法需要被非常快速地执行,因为直到该方法执行完毕后,下一个Activity才能被恢复。在该方法中,通常用于持久保存数据。例如,当我们正在玩游戏时,突然来了一个电话,这时就可以在该方法中将游戏状态持久保存起来。



[√]onResume()方法:当Activity由暂停状态恢复为活动状态时调用。调用该方法后,该Activity位于Activity栈的栈顶。该方法总是在onPause()方法以后执行。



[√]onStop()方法:停止Activity时被回调。



[√]onDestroy()方法:销毁Activity时被回调。

说明:  在Activity中,可以根据程序的需要来重写相应的方法。通常情况下,onCreate()和onPause()方法是最常用的,经常需要重写这两个方法。





5.2 创建、配置、启动和关闭Activity

教学录像:光盘\TM\lx\5\创建、启动和关闭Activity.exe

在Android中,Activity提供了与用户交互的可视化界面。在使用Activity时,需要先对其进行创建和配置,然后还可能需要启动或关闭Activity。下面将详细介绍创建、配置、启动和关闭Activity的方法。

5.2.1 创建Activity

创建Activity,大致可以分为以下两个步骤。

(1)创建一个Activity,一般是继承android.app包中的Activity类,不过在不同的应用场景下,也可以继承Activity的子类。例如,在一个Activity中,只想实现一个列表,那么就可以让该Activity继承ListActivity;如果只想实现选项卡效果,那么就可以让该Activity继承TabActivity。创建一个名为MainAcrivity的继承Activity类的Activity,具体代码如下:

import  android.app.Activity;



public  class  MainActivity  extends  Activity  {





}

(2)重写需要的回调方法。通常情况下,都需要重写onCreate()方法,并且在该方法中调用setContentView()方法设置要显示的视图。例如,在步骤(1)中创建的Activity中,重写onCreate()方法,并且设置要显示的视图的具体代码如下:

@Override



public  void  onCreate(Bundle  savedInstanceState)  {



super.onCreate(savedInstanceState);



setContentView(R.layout.main);



}

说明:  使用带ADT插件的Eclipse创建Android项目后,默认会创建一个Activity。该Activity继承Activity类,并且重写onCreate()方法。

5.2.2 配置Activity

创建Activity后,还需要在AndroidManifest.xml文件中进行配置,如果没有配置,而又在程序中启动了该Activity,那么将抛出如图5.2所示的异常信息。



图5.2 日志面板中抛出的异常信息

具体的配置方法是在标记中添加标记。标记的基本格式如下:




android:icon="@drawable/图标文件名"



android:name="实现类"



android:label="说明性文字"



android:theme="要应用的主题"







>









标记中,android:icon属性用于为Activity指定对应的图标,其中的图标文件名不包括扩展名;android:name属性用于指定对应的Activity实现类;android:label用于为该Activity指定标签;android:theme属性用于设置要应用的主题。

说明:  如果该Activity类在标记指定的包中,则android:name属性的属性值可以直接写类名,也可以加一个“.”点号;如果在标记指定包的子包中,则属性值需要设置为“.子包序列.类名”或者是完整的类名(包括包路径)。

在AndroidManifest.xml文件中配置名称为DetailActivity的Activity,该类保存在标记指定的包中,关键代码如下:




android:icon="@drawable/ic_launcher"



android:name="DetailActivity"



android:label="详细"



>





5.2.3 启动和关闭Activity

1.  启动Activity

在一个Android项目中,如果只有一个Activity,那么只需要在AndroidManifest.xml文件中对其进行配置,并且将其设置为程序的入口。这样,当运行该项目时,将自动启动该Activity。否则,需要应用startActivity()方法来启动需要的Activity。startActivity()方法的语法格式如下:

public  void  startActivity  (Intent  intent)

该方法没有返回值,只有一个Intent类型的入口参数,Intent是Android应用里各组件之间的通信方式,一个Activity通过Intent来表达自己的“意图”。在创建Intent对象时,需要指定想要被启动的Activity。