在Android中,无论是开发者还是用户,接触最多的就算是Activity。它是Android中最复杂、最核心的组件。Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页面类似。当然,这种相似性主要体现在设计思想上。在具体实现方面,Android的Activity组件有自己的设计规范,同时,它能够更简便地使用线程、文件数据等本地资源。

一、Activity 的生命周期

Activity 的生命周期是被以下的函数控制的。

 1 public class Activity extends ApplicationContext { 2       protected void onCreate(Bundle icicle); 3       protected void onStart(); 4       protected void onRestart(); 5       protected void onResume(); 6       protected void onFreeze(Bundle outIcicle); 7       protected void onPause(); 8       protected void onStop(); 9       protected void onDestroy();10 }
  1. onCreate函数:函数是你进行初始化的地方,这个也是执行setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML编制的UI界面,可以使UI和具体实现完全分离。
  2. onStart函数:该方法在 onCreate() 方法之后被调用。
  3. onRestart()函数:在 Activity 从 Stop 状态转换为 Active 状态时被调用。
  4. onResume()函数:在 Activity 从 Pause 状态转换到 Active 状态时被调用。
  5. onFreeze()函数:当你的activity被暂停而其他的activity恢复与用户交互的时候这个方法会被调用(在其他activity显示之前)
  6. onPause()函数:当系统要启动一个其他的activity时调用(其他的activity显示之前)
  7. onStop()函数:当另外一个activity恢复并遮盖住此activity,导致其对用户不再可见时调用。
  8. onDestroy()函数:在你的activity被销毁前所调用的最后一个方法。

【Android的从零单排开发日记】之入门篇(四)——Android四大组件之Activity

二、Activity 的配置

  1. 注册Activity,除了系统自动生成的Activity之外,其他的Activity都必须在manifest.xml文件中进行注册
    <activity android:name=".Demo" android:label="@string/app_name"> //.Demo是要注册的Activity名字,当然不在默认包内的话,前面要加上包名。后面的是Activity的名字</activity>
  2. 启动另一个Activity
    Intent intent =new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent);

    当然OtherActivity也必须在manifest.xml文件中进行注册。其中intent是一个通信机制,这个以后会专门介绍它。

三、一些关于 Activity 的技巧

  1. 锁定Activity屏幕的运行方向
    <activity android:name=".EX01" android:label="@string/app_name"  android:screenOrientation="portrait">// 竖屏 , 值为 landscape 时为横屏 </activity>
  2. 全屏的Activity
    // 设置全屏模式 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,     WindowManager.LayoutParams.FLAG_FULLSCREEN);  // 去除标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE);
  3. 在Activity的title中加入进度条
    // 不明确进度条 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  setContentView(R.layout.main);  setProgressBarIndeterminateVisibility(true);  // 明确进度条 requestWindowFeature(Window.FEATURE_PROGRESS);  setContentView(R.layout.main);  setProgress(5000);
Activity还有更多可以详细讲解的地方,比如它的交互事件,构造菜单、对话框等附加的交互资源以及它的数据结构等等。这些在以后的学习中我们肯定会遇到。所以今天在这里就不再赘述了,只是让大家了解一下它的简单机制。 参考文章:(1)android之Activity生命周期 http://www.cnblogs.com/draem0507/archive/2012/11/28/2793332.html (2)详解 Android 的 Activity 组件 http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/ ======================================== 作者:cpacm
出处:(http://www.cnblogs.com/cpacm/p/3900557.html)

更多相关文章

  1. 自定义android用户控件,使用回调函数实现自定义事件
  2. 在Android里添加自己的log函数
  3. android组件式开发(1)——可复用的弹出式菜单
  4. android组件通讯 Intent Filter隐式实现Intent
  5. Android 架构组件之一
  6. 解决eclipse中android添加重载函数时参数为arg0,arg1的问题
  7. Android 四大组件之Activity
  8. Flutter修仙传第一章:从Form入手学会组件使用

随机推荐

  1. PhoneGap Android环境搭建
  2. Android的源代码下载教程
  3. android第一行代码实战篇——一个小错误
  4. 2010.11.28(2)———android 展示网页 和
  5. UI组件之AdapterView及其子类(二)GridView
  6. 什么是Android-Android中文SDK
  7. Android的常用adb命令
  8. Android(安卓)4.4 KitKat 更新内容
  9. Android(安卓)Retrofit 框架上传多张图片
  10. 【学习Android(安卓)NDK开发】native cod