在android开发中Activity非常重要,在一个应用中,每一个显示的屏幕都是一个Activity.所以学习android,必须要对Activity有一定的了解.在其他论坛中也有一些关于Activity的介绍,我在这里就想谈谈我对Activity学习的一些看法.首先Activity的生命周期很重要,Activity主要包含六个方法,分别是onCreate,onStart,onResume,onPause,onStop,onDestory.
onCreate和onDestory对应.onStart和onStop对应,onResume和onPause对应.
这几个函数大概是这样定义的,当启动一个Activity的时候,onCreate方法首先会被启动,然后接着是onStart和onResume,也会启动,一般地,等这几个函数都启动完了之后你这个Activity就可以被显示出来了.当然我这里说的是一般的情况,如果你要是在这三个函数初始化的时候启动了一个后台的Service,那么还要等待ServiceConnection执行完毕才能够被显示出来,这里可能有人要问什么是Service了,在以后我会介绍它,这里大家就先了解下Service的回调函数也会影响Acitivity的启动就可以了.这是Activity启动时会调用的三个函数,在Acitivity销毁的时候会调用onPause,onStop,onDestory.当调用完onDestory之后,你的Acitivity也就被销毁完毕了,这时候你在调用Activity的isFinishing的时候,就会返回true,但是此时Activity的this指针还可以被使用,如果你在Activity单起一个线程做其他事情的话,那么上下文变量context指针还是能够被使用的.
当然Activity有可能还处于其他状态,不一定就是被显示或者被销毁,很有可能这个Activity启动了另一个Activity,这个时候前先的那个Activiy就会被放到系统的堆栈中,等被启动的Activity返回的时候,它又重新被显示出来,这个流程是这样的,一个Activity启动了另外的一个Activity,那么它就会调用onPause函数,进入一种停滞的状态,然后被启动的Activity被销毁返回后,又会调用onResume函数.对于Activity的这种机制,我感觉在初始化的工作最好放到一个自己定义的一个接口中,因为由于Activity状态的改变,你的Activity的Layout就有可能会被改变.说到这里就要谈一下什么叫做Layout,每个Activity的界面的布局就是一个Layout,每个Activity都要有这样一个布局它才能够被显示出来,一般地,我们都会把一个Layout放到一个XML文件当中,然后直接调用Activity的setContentView函数来填充这个Activity,如果Layout不放在xml文件中,也可以用代码生成一个动态的Layout,也就是说用Activity.this指针生成一个Layout.这个给大家推荐一个非常好用的工具叫做droiddraw,论坛里就有链接,站长好像发过贴.这个工具非常好用,不用看教程半小时就能学会,上面有一些特定的控件,把控件摆好布局后直接能生成xml文件.把这个xml文件放到项目的res/layout文件夹下面就可以了.生成好Layout文件后,你就要为你程序要用到的一些控件设定ID,具体怎么设定大家可以在google的android主页里有,叫gettingstarted,那个写得很明白,我就不跟这里重述了.接下来还是谈下android的这几个主要的函数,还有些建议就是在onCreate函数中尽量少写代码,把尽肯能多的东西放到onResume和那个自定义的初始化函数里去写,onResume这个函数被调用的几率是非常高的,这里大家在模拟器上开发可能没有感觉到onResume的重要性,在真机上测试就会发现,当屏幕变黑进入等待状态,然后你手动恢复屏幕变亮时也会进入onResume状态,所以我感觉把一些刷新控件的方法放到onResume函数中来做还是非常必要的.onPause,onStop,还有onDestroy函数都是用来做一些清理工作的,比如说一些变量要被释放,一些线程要被停滞等等都可以放到这里来做.
下面我来总结一下Activity一个大概的设计思路:
首先设计一个方法,这个方法主要作用就是初始化Activity的控件,进行各种条件判断,对Acitvity来进行不用的布局初始化,这里举个例子来解释下为什么要初始化不同的布局,例如你的这个Activity从SD卡读取了一些信息,那么当你拔出SD卡的时候这些信息肯定也就没有了,那么你就要进行另外的一个布局来显示这个Activity,这个时候你就可以重用这个函数来进行布局的初始化.
onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息.
onStart函数:注册一些变量.这些变量必须在Activity在前台的时候才能够被响应.
onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态.
onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整.
onStop函数:反注册在onStart函数中注册的变量.
onDestory函数:反注册在onCreate函数中注册的变量.
上面谈了些Activity的最常用的一些方法,当然还有很多方法没有谈到,有很多方法我也没有用过,其他方法大家可以参考google的文档.
接下来我来谈谈Activity中最简单的一些通信方法,这里我先定义两个名字为方便接下来的叙述,启动另外一个Activity的那个Activity我们称之为主Activity,被启动的那个Activity我们称之为子Activity.
主Activity和子Acitivity通信的方式有很多种这里介绍两种最简单的方法。
方法一:通过Intent来进行参数的传递,在Intent中有各种putXXX方法来存放各种参数,然后在子Activity接收到这个Intent时能够从这个Intent里取出这个参数,利用getIntnet().getXXXExtra()方法就可以了.
方法二:当一个主Activity想从一个子Activity接受消息时可以使用StartActivityforResult方法,例如这样启动一个Activity,startActivityForResult(i, REQUEST_CODE); 然后在主Activity中的onActivityResult方法对requestCode进行判断来对子Activity不同的返回处理不同的情况,另外子Activity也可以利用setResult方法来设置主Activity方法中的resultCode,这样主Activity也可以根据子Activity的不同的resultCode来处理不同的情况.
更多介绍:http://dev.firnow.com/course/3_program/java/javajs/20090221/156066.html
<!--EndFragment-->
分享到:
相关推荐
在Android开发中,Activity是应用程序的基本组件之一,用于呈现用户界面并与用户交互。然而,有时候开发者可能需要在不改变原始Activity的基础上实现不同的功能或者提供不同的入口,这时Android系统提供的Activity...
在Android开发中,Activity是应用程序的基本构建块,用于表示用户界面。实时模糊效果是一种常见的设计手法,用于在某个视图或Activity背后创建一种半透明、模糊的视觉效果,以突出显示前景内容。这种效果通常用于...
Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...
Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...
在Android应用开发中,Activity是核心组件之一,它代表了用户界面的一个屏幕或者一个交互窗口。这个"android Activity 详述 demo"旨在深入探讨Activity的工作原理及其在实际应用中的使用方式。通过链接给出的博客...
本示例将详细介绍如何在Android中实现Activity之间的动画切换。 首先,我们需要了解Android中的两种主要动画类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画系统是自Android 3.0(API...
在Android开发中,Activity是应用程序的基本构建块,它代表了一个用户可见并与其交互的屏幕。Activity可以展示用户界面,处理用户输入,并与系统服务或其它应用程序进行交互。本压缩包"Activityzhuanghuantexiao...
本文将详细介绍如何使用`startActivityForResult()`来实现在Activity之间的数据回传。 #### 二、为什么需要使用`startActivityForResult()` 通常,Android中有两种启动Activity的方式:`startActivity()`和`...
在Android开发中,Activity是应用程序的基本组件,用于承载用户界面。Activity之间的切换动画可以极大地提升用户体验,"android activity右进右出动画"就是一个常见的应用场景,它使得应用在切换时具有更加自然、...
在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...
一篇关于android activity的详细总结
在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。当我们希望Activity的背景变得透明,以实现如悬浮窗、半透明过渡效果等设计需求时,就需要对Activity进行一些特殊的配置。本篇...
在Android应用开发中,Activity是应用程序的基本组成部分,用于展示用户界面和处理用户交互。Activity间的跳转动画在提升用户体验方面起着至关重要的作用。本文将深入探讨5.x之前和5.x之后Android系统中Activity跳转...
android activity之间的跳转
在Android应用开发中,Activity是用户界面的基本单元,它负责展示屏幕上的内容并处理用户交互。当用户在应用中从一个Activity切换到另一个时,Android系统提供了丰富的动画效果来提升用户体验,使应用看起来更加流畅...
在Android开发中,"悬浮Activity"通常指的是一个可以悬浮在其他应用之上,类似Dialog样式但功能更为丰富的Activity。这样的设计可以提供用户一种便捷的方式访问或操作应用,而无需完全退出当前正在使用的应用。悬浮...
在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。Activity间的切换是用户体验的重要组成部分,为了使应用更具吸引力和流畅性,Android提供了丰富的动画机制来美化这种切换过程。...
在Android应用开发中,Activity是应用程序的基本构建块,它代表用户界面的一个屏幕。理解Activity的跳转和ListView的使用是Android开发中至关重要的技能。在这个主题中,我们将深入探讨如何通过Intent和Bundle实现...
在Android应用开发中,Activity和Fragment是两个核心组件。Activity作为应用程序的主要入口点,而Fragment则作为可重用的UI块,可以在多个Activity之间切换或组合。然而,在使用Fragment时,有时会出现一个问题:当...
本文将深入探讨多种Activity切换动画的实现方法,并介绍如何将其封装为基类以便于在项目中复用。 一、自定义动画 1. 使用Transition动画:Android提供了Transition框架,允许开发者创建和控制视图之间的过渡动画。...