2014-5-27

1.Activity生命开始

用户在手机里点击应用图标,系统就会调用该应用mainActivity的onCreate(),mainActivity的生命开始。

mainActivity的解释:可以理解为主界面,在manifest中,一个activity的声明中如果有这样一段代码
<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>

那么这个activity就是主界面
所有activity生命都是从onCreate()开始的。

2.下图就是流程图(看了图就一目了然了有木有!!)



3.暂停和恢复Activity

暂停
举个暂停的例子,就能理解它的意思了:一个半透明的活动打开,以前的活动虽然可见,但是没有获取焦点,那么这个活动就被暂停了。
进入暂停状态,系统调用onPause(),这时候需要把可以保存的数据保存起来,以防用户直接退出。
官网上说onPause()最好将活动状态调整为一个比较低能耗的状态,怎么理解呢,还是举个例子,如果之前的活动调用了相机,现在活动被暂停了,那么onPause()中最好这么写:
public void onPause() {    super.onPause();  // Always call the superclass method first    // Release the Camera because we don't need it when paused    // and other activities might need to use it    //.释放相机    if (mCamera != null) {        mCamera.release()        mCamera = null;    }}


恢复
当用户从暂停状态恢复原先的活动,系统调用onResume()方法。
还是用相机的例子,在暂停中相机被释放,恢复的代码中就要:
public void onResume() {    super.onResume();  // Always call the superclass method first    // Get the Camera instance as the activity achieves full user focus    if (mCamera == null) {        initializeCamera(); // Local method to handle camera init    }}


4.onStop()方法,它不再是可见的,应释放被当用户不使用它并不需要的几乎所有资源。一旦你的活动被停止,系统可能会破坏实例,如果需要恢复系统内存。在极端情况下,系统可能会简单地杀死你的应用程序,而不调用活动的最终的onDestroy()回调,所以你使用的onStop()来释放可能泄漏内存资源是很重要的。

5.销毁Activity

OnDestory()方法
大多数情况下不需要去写这个方法,但是如果Activity会影响内存,可以手动销毁Activity
@Overridepublic void onDestroy() {    super.onDestroy();  // Always call the superclass        // Stop method tracing that the activity started during onCreate()    android.os.Debug.stopMethodTracing();}

更多相关文章

  1. DSBridge 与 JSBridge 的区别
  2. Android中,如何在其他类调用Activity的方法,适用于类似场景
  3. Android(安卓)Studio NDK&Jni开发--MD5加密
  4. (转载)Android(安卓)耗时代码(ANR)的查找检测和分析解决 TraceView
  5. Android(安卓)使用 Timer 做倒计时。实现开始 (start),取消 (canc
  6. android activity启动过程分析
  7. android web services2
  8. android 默认锁屏界面没有紧急呼救入口如何解决
  9. Android中打印调用栈

随机推荐

  1. MySQL] 行列转换变化各种方法实现总结(行
  2. 【Java Web】简易商品信息管理系统——首
  3. oracle、mysql、db2三大数据库分页方法的
  4. MYSQL安装--小白教程
  5. MySQL—嵌套select使用该表时如何从表中
  6. MySQL连接的计算顺序是什么?
  7. 项目实战7—Mysql实现企业级数据库主从复
  8. mysql值以数组格式转换为PHP数组
  9. MySQL多个连接到付款数据的日历表
  10. mysql5.6配置同步复制的新方法以及常见问