1.Activity:它是一种包含用户界面的组件,主要用于和用户进行交互;
  Activity的用法与步骤:
    1)新建类MyActivity.java,继承Activity类;
    2)创建布局文件myactivity_layout.xml;
    3)在类MyActivity中重写 onCreate() 方法,并使用 setContentView() 方法指定当前Activity的布局文件为myactivity_layout.xml;
    4)在AndroidMenifest.xml配置文件中注册MyActivity;
    可以使用 requestWindowFeature(Window.FEATURE_NO_TITLE) 方法隐藏标题栏;
2.在活动中使用菜单(Menu):
  1)在 res 目录下创建 menu 目录;
  2)在 menu 目录中创建菜单文件 menu.xml,并在menu.xml文件中添加菜单选项(item);
  3)在类MyActivity中重写 onCreateOptionMenu() 方法,并使用 getMenuInflater().inflate()方法指定菜单文件;
  4)重写 onOpntionsItemSelected() 方法,编写每个菜单选项的响应事件;
  注:若 onCreateOptionMenu() 方法返回值设为 false ,则菜单无法显示;
3.Activity的销毁:使用 finish() 方法,效果如同设备上的 Back 键;
4.intent:用于 android 中个组件直接的交互及数据传递,它主要分为两种:显示Intetn和隐式Intent;
  1)显示Intent例子:Intent有多个构造函数的重载,其中一个是Intent(Context packageContent, Class<?> cls), 第一个参数Context为启动活动的上下文,第二个参数是指定要启动的目标活动。然后使用 Activity 的 startActivity() 方法启动新的活动;
  2)隐式Intent:不明确指出要启动的Activity,而是指定了一系列抽象的action和category等信息,然后交由系统去分析这个intent,并找出合适的Activity来启动;
5.intent传递数据:
  1)基本类型数据:发送端通过 intent.putExtra("key", typeValue) 方法想intent传入数据,接收端通过 intent.getTypeExtra("key") 方法获取数据,如 getIntExtra()等;
  2)引用类型数据:发送的对象需实现 Serializable 接口,然后创建 Bundle类对象 bundle, 调用 bundle.putSerializable("key", object) 将对象放入bundle内,再通过 intent.putExtras(bundle) 方法将bundle传入。接收端可以通过 intent.getSerializableExtra("key") 方法获取引用对象(需强转);
6.通过intent返回数据:发送端若想接收接收端返回的数据,在启动 Activity 的时候应该调用 startActivityForResult(intent, requestCode) 方法,接收端将需要返回的数据放入intent中,然后调用 setResult(resultCode, intent) 方法来设置结果,发送端通过重写 onActivityResult(requestCode, resultCode, intent) 方法来获取和处理返回的数据;
7.android使用 Task (任务)来管理 Activity ,一个 Task 就是一组存放在栈里的 Activity 集合,这个栈也称为返回栈;
8.Activity的生命周期:
  活动状态:
    1)运行状态:当 Activity 处于返回栈栈顶是就是运行状态;
    2)暂停状态:当 Activity 不再处于栈顶,但仍然可见时,就进入暂停状态;s
    3)停止状态:当 Activity 不再处于栈顶,并且完全不可见时,就进入停止状态,这种状态下的 Activity 随时可能被系统回收;
    4)销毁状态:当一个 Activity 从返回栈栈顶移除的时候,就进入销毁状态;
  生存期:
    1)onCreate(): Activity 第一次被创建时执行;
    2)onStart(): 该方法在 Activity 由不可见变为可见的时候调用;
    3)onResume(): Activity 准备好与用户交互的时候调用;
    4)onPause(): 在系统准备启动或回复另一个 Activity 的时候调用,通常在该方法中释放一些消耗CPU的资源,以及保存一些关键数据;
    5)onStop(): 在 Activity 完全不可见的时候调用;
    6)onDestroy(): Activity 被销毁之前调用;
    7)onRestart(): Activity 在由停止状态变为运行状态之前调用;
  活动的三种生存期:
    1)完整生存期:在 onCreate() 方法和 onDestroy() 方法之间所经历的时期;
    2)可见生存期:在 onStart() 方法和 onStop() 方法之间所经历的时期;
    3)前台生存期:在 onResume() 方法和 onPause() 方法之间所经历的时期;
9.当 Activity 处于停止状态时,有可能会因为系统内存不足而被系统回收,此时如果其他活动返回到该 Activity 时, 该 Activity 会被重新创建(执行onCreate()方法),之前 Activity 的一些临时数据和状态将被销毁,影响用户体验。要想在系统回收 Activity 之前将一些重要的临时数据保存下来,可以重写 Activity 的 onSaveInstanceState() 方法,
该方法会在被回收之前调用,它携带了一个 Bundle 参数,可以将需要的数据放入这个 Bundle 内, 然后当下一次 Activity 被创建时,可以从 onCreate() 方法中的 Bundle参数中获取到之前的数据。
10.Activity 的启动模式: standard, singleTop, singleTask, singleInstance,可以在配置文件 AndroidMenifest.xml中通过指定<activity>标签的 launchModel属性来设置启动模式;
  1)standard: 默认启动模式,每启动一次 Activity ,就会创建一个新的栈顶 Activity 实例并压入栈顶;
  2)singleTop: 若要启动的 Activity 已处于栈顶,则不会再创建新的 Activity 实例,直接启动栈顶的 Activity;
  3)singleTask: 该模式下启动 Activity 之前先在 返回栈中查找 是否已经存在该 Activity 的实例,若存在,则直接使用该实例,并将其上面的其他 Acticity 实例全部出栈;
  4)singleInstance: 该模式下的 Activity 启动时会启用一个新的返回栈来管理这个活动,这个新的返回栈能够被其他应用访问,因此能够达到共享 Activity 实例的目的;
11.管理应用中 Activity 的技巧:
  1)可以创建一个基础活动 BaseActivity, 它继承自基类 Activity,然后让其他所有的 Activity 都继承 BaseActivity;
  2)重写 BaseActivity 中的 onCreate() 方法,写上 Log.d("BaseActivity", this.getClass.getSimpleName), 这样当打开任何一个 Activity 时,都会打印该 Activity 的名称,方便开发时快速找到当前的 Activity;
  3)创建一个 Activity 管理类 ActivityCollector, 用于管理应用中的 Activity,其中包括 addActivity()、removeActivity()、finishAll()等方法;
  4)在 BaseActivity 的 onCreate() 方法中编写 ActivityCollector.addActivity(this),这样每次创建的 Activity 都会被添加到管理类 ActivityCollector 中;
  5)在 BaseActivity 的 onDestroy() 方法中编写 ActivityCollector.removeActivity(this),这样每当 Activity 销毁时都会被移除出到管理类 ActivityCollector;
  6)若想在任何一个 Activity 中退出整个程序(即销毁所有 Activity),则可以调用 ActivityCollector.finishAll() 方法来退出;

Android--Activity的更多相关文章

  1. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  2. Android Activity launchMode研究

    Android Activity launchMode研究 Activity的Launch mode一共有四种: standard, singleTop, singleTask, singleInst ...

  3. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  4. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  5. Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1.覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected ...

  6. Android Activity和Fragment的转场动画

    Android Activity和Fragment的转场动画 Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, ...

  7. android Activity生命周期(设备旋转、数据恢复等)与启动模式

    1.Activity生命周期     接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...

  8. Android Activity的加载模式和onActivityResult方法之间的冲突

    前言 今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法.我一开始用log,后来用断点跟踪调试半天,还是百思不得其解.因为之前其 ...

  9. Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法:

    Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法: 1. 基本作用: Activity的 onSaveInstan ...

  10. Android activity的回传数据

    package com.example.myact3; import android.content.Intent; import android.os.Bundle; import android. ...

随机推荐

  1. HDOJ2222 Keywords Search-AC自动机

    Problem Description In the modern time, Search engine came into the life of everybody like Google, B ...

  2. Egret中的对象池ObjectPool

    为了可以让对象复用,防止大量重复创建对象,导致资源浪费,使用对象池来管理. 对象池具体含义作用,自行百度. 一 对象池A 二 对象池B 三 字符串key和对象key的效率 一 对象池A /** * 对 ...

  3. Maven pom.xml中添加指定的中央仓库

    中央仓库就是Maven的一个默认的远程仓库,Maven的安装文件中自带了中央仓库的配置($M2_HOME/lib/maven-model-builder.jar) 在很多情况下,默认的中央仓库无法满足 ...

  4. WPF TextBlock文本纵向排列

    一.将TextBlock文本纵向排列输出有两种模式. 1.文字正常放置,只是纵向排列. 2.文字同样旋转90度,纵向排列. 二.详见下文实例 1.文本正常放置,纵向排列. (1)后台代码 string ...

  5. information_schema系列二(列,列权限,事件,存储引擎)

    这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:COLUMNS 老规矩.查一下这个表,看一下记录,由于这个是看表 ...

  6. nagios二次开发(二)---nagios和nagiosql合并与取舍

    NAGIOS做前台 上一篇本人分析了nagios和nagiosql的优缺点,根据之前的使用经验及探索.决定将nagios做为监控数据的展示层,暂称做“前台”.将nagiosql做为监控体的配置层,暂称 ...

  7. Android 下拉刷新框架实现

    原文地址:http://blog.csdn.net/leehong2005/article/details/12567757 前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但这些 ...

  8. 基于CCS3.3平台搭建DSP/BIOS系统

    本人由于换工作的原因,由ccs3.1平台下转化为ccs3.3平台.先说说本人感觉的区别,ccs3.1下的CSL库集成到DSP/BIOS内,而3.3的CSL库在DSP/BIOS下就没有体现. 1.二话不 ...

  9. 修改win10打开文件资源管理器

  10. Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新

    1.nullpointer——就是使用一个对象的时候还没有对其进行初始化导致该问题 一般在何种情况下容易出现呢? (1)父窗口+子窗口同时出现的,父窗口因为某种原因消掉了,子窗口还在,操作子窗口找不到 ...