一、 Activity介绍

activity可以算是开发者遇到的最频繁,也是android当中最基本的模块之一,在android的程序中,activity一般代表手机屏幕的一屏,如果把手机比作一个浏览器,那么activity就相当于一个网页, 对于Activity,关键是其生命周期的把握(如下图),


正如图形所示,当我们第一次启动一个Acitivity1时,会按下列顺序调用Acitivity1的方法onCreate()->onStart()->onResume(),然后Acitivity1就会显示在手机屏幕上。这个时候如果你点击按钮或者做操作切换到了另外一个Activity2,Activity2遮挡住了Activity1,Actitity1就会调用onPause()方法,这时Activity1有三种可能,第一种Activity2被关闭,Activity1重新显示在手机屏幕中,这时会调用Activity1的onResume()方法,重新显示Activity1。第二种Activity1不能再显现,会调用其onStop()方法。第三种就是Activity1被onPause()后,系统内存不够,要释放空间,就可能会杀掉Activity1,如果要重新显示Activity1需要重新调用其onCreate()方法。

当Activity1调用onStop()以后,同样有三种选择,第一种是调用onDestroy()销毁,结束Activity1。第二种是又让Activity1显现出来,这时调用的是Activity1的onRestart()方法。

最后一种是系统内存不够,释放空间。

引用一段网上比较好的比喻可以这样比喻:

我们把Activity比作一本书,我们要看书,首先从书架上取出书(onCreate),然后放到桌上(onStart),接着打开书(onResume),这样我们就可以看书并可以在书本上写字了。

如果这时候我们要启动另一个Activity,也就是要看另一本书,首先我们放下手中的笔或者说合上书(onPause),然后从书架上拿下另一本书(书2:onCreate),然后把书本2放到桌上并打开(书2:onStart、onResume)。

如果书本1被书本2完全盖住了,即不可见了,就调用书本1的onStop;而如果书本2较小,没有完全盖住书本1,则不会调用。

我们还可以把书本1放回书架上,即onDestroy。

另外,还有一点要注意,Activity在处于onPause、onStop、onDestroy状态下,系统都可以销毁该Activity所在进程,所以我们在处理一些要保存的数据时,必须在onPause方法中进行,因为onStop和onDestroy方法不一定会被调用。

二、 Activity配置与使用

在Android项目中有一个非常重要的配置文件AndroidManifest.xml,

<application android:icon="@drawable/myicon" android:label="@string/app_name"> application配置节点用来设置应用程序的配置信息,

android:icon表示应用程序的图标,android:label表示应用程序的名称,我这里的示例配置中@drawable/myicon表示图标取自res->drawable->myicon.jpg

android2.1以后图标资源又分成了三个子目录,应该是res->drawable-hdpi->myicon.jpg,string/app_name表示应用程序名称取自res->values->strings.xml中的<string name="app_name">项目名称</string>配置节

项目中的所有的Acitivity要能运行,必须在<application >节点下配置<activity/>节点基本规则如下:<activity android:name="您要使用的Activity所在的类名"></activity>

activity 这么多,怎么确定哪个activity 是启动项目时第一个运行的呢?

<activity android:name="com.ui.Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

像以上这个示例如果有<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>表示这个Activity是启动时运行的第一个Activity。

类名是com.ui.Main;

更多相关文章

  1. Android中Handler问题汇总
  2. Android(安卓)Activity(活动)
  3. 深入了解View(四)—— LayoutInflater原理及View测量/布局/绘制总
  4. android完美退出程序(创建单例管理所有打开的activity)
  5. Android使用AIDL实现进程间的简单通信
  6. Android之Service总结
  7. Android的异步加载
  8. 我的android 第23天 - UriMatcher类使用介绍
  9. 【转】Android(安卓)分析内存的使用情况

随机推荐

  1. ap6234移植
  2. Android5.0网络子系统
  3. android 获取系统中各种类型音量及对音量
  4. Android中的事件分发传递机制
  5. android recovery 系统代码分析【精】
  6. Android GridView使用注意的问题
  7. ANR超时时间的定义 .
  8. android建立NDK项目调用jrtplib与pc机进
  9. Android多文件断点续传(三)——实现文件断
  10. Android更新Ui线程的四个方法