`
yangguangfu
  • 浏览: 1539775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Activity类应用技巧分享

阅读更多

Android Activity类在Android操作系统的应用中是常重要的。那么如何才能正确的在应用中来操作这一类呢?在一个应用中,每一个显示的屏幕都是一个

Activity。所以学习Android,必须要对Activity有一定的了解。在其他论坛中也有一些关于Activity的介绍,我在这里就想谈谈
我对Activity学习的一些看法。首先Activity的生命周期很重要,Activity主要包含六个方法,分别是

onCreate,onStart,onResume,onPause,onStop,onDestory。


onCreate和onDestory对应。onStart和onStop对应,onResume和onPause对应。

这几个函数大概是这样定义的,当启动一个Android Activity类的时候,onCreate方法首先会被启动,然后接着是onStart和onResume,也会启动,一般地,等这几个函数都启动完了 之后你这个Activity就可以被显示出来了。当然我这里说的是一般的情况,如果你要是在这三个函数初始化的时候启动了一个后台的Service,那么 还要等待ServiceConnection执行完毕才能够被显示出来,这里可能有人要问什么是Service了,在以后我会介绍它,这里大家就先了解下 Service的回调函数也会影响Acitivity的启动就可以了。

这是Activity启动时会调用的三个函数,在Acitivity销毁的时候会调用onPause,onStop,onDestory。当调用完 onDestory之后,你的Acitivity也就被销毁完毕了,这时候你在调用Activity的isFinishing的时候,就会返回true, 但是此时Activity的this指针还可以被使用,如果你在Activity单起一个线程做其他事情的话,那么上下文变量context指针还是能够 被使用的。

当然Android 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函数都是用来做一些清理工作的,比如说一些变量要被释 放,一些线程要被停滞等等都可以放到这里来做。

下面我来总结一下Android Activity类一个大概的设计思路:

首先设计一个方法,这个方法主要作用就是初始化Activity的控件,进行各种条件判断,对Acitvity来进行不用的布局初始化,这里举个例 子来解释下为什么要初始化不同的布局,例如你的这个Activity从SD卡读取了一些信息,那么当你拔出SD卡的时候这些信息肯定也就没有了,那么你就 要进行另外的一个布局来显示这个Activity,这个时候你就可以重用这个函数来进行布局的初始化。

onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能 够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息。


onStart函数:注册一些变量。这些变量必须在Android Activity类在前台的时候才能够被响应。


onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态。


onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的 调整。

onStop函数:反注册在onStart函数中注册的变量。

onDestory函数:反注册在onCreate函数中注册的变量。

上面谈了些Android 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进行判断来对子Android Activity类不同的返回处理不同的情况,另外子Activity也可以利用setResult方法来设置主Activity方法中的 resultCode,这样主Activity也可以根据子Activity的不同的resultCode来处理不同的情况。

分享到:
评论

相关推荐

    android Activity 设置背景透明

    在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。当我们希望Activity的背景变得透明,以实现如悬浮窗、半透明过渡效果等设计需求时,就需要对Activity进行一些特殊的配置。本篇...

    Android Activity动态加载Fragment

    总之,动态加载Fragment是Android应用开发中常用且重要的技巧,它提高了应用的灵活性和可复用性。通过熟练掌握这一技术,开发者能够更高效地构建适应不同设备和场景的应用程序。在实践中,不断学习和优化对Fragment...

    android中activity跳转的几种动画

    在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。为了提升用户体验,Android系统允许开发者自定义Activity之间的跳转动画,使应用看起来更加生动和专业。本篇文章将深入探讨如何...

    android动画activity切换特效

    在Android开发中,动画是提升用户体验的关键因素之一,特别是在Activity之间的切换效果上。"android动画 切换特效"主要涉及到Android...通过熟练掌握这些技巧,开发者可以打造出更具吸引力和用户友好性的Android应用。

    Activity切换动画

    在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。Activity间的切换动画不仅可以提升用户体验,还能使应用更具吸引力。本主题主要关注如何实现和优化Activity之间的切换动画,...

    Android的Activity跳转动画

    在Android开发中,Activity是应用程序的基本构建块,用于表示用户界面。当用户在应用中进行操作,如点击按钮或选择菜单项时,通常会触发Activity之间的跳转。在这个过程中,Android提供了丰富的动画效果来增强用户...

    [Android开发实用技巧]实现圆角Activity

    在Android应用开发中,创建具有圆角的Activity可以提升用户界面的美观度和用户体验。本文将详细介绍如何在Android中实现圆角Activity,包括圆角背景的设置和相关技术要点。 首先,我们需要理解Android Activity的...

    安卓安装卸载相关-Android中应用程序Activity管理类用于Activity管理和应用程序退出。.zip

    总结起来,这个压缩包提供了关于Android应用程序Activity管理的知识,包括Activity的生命周期管理、Activity集合的维护、源码学习、安装卸载流程以及可能涉及的调试技巧。这些内容对于深入理解Android应用开发至关...

    Android开发之Activity管理工具类完整示例

    该工具类主要用于管理Android应用程序中的Activity,包括Activity的创建、添加、获取、移除等相关操作技巧。 1. Activity管理工具类的设计 Activity管理工具类的设计主要是为了解决Android应用程序中的Activity...

    Android Activity间传值

    在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。"Android Activity间传值"是一个核心知识点,它涉及到Intent、 Extras、Parcelable接口、Serializable接口等多种方式,...

    Activity最小化终极解决方案

    下面将详细介绍一种被称为“Activity最小化终极解决方案”的方法,该方法涉及到了Android的权限设置、Activity生命周期以及Logcat的使用。 首先,我们需要了解Android对Home键的处理机制。默认情况下,系统不允许...

    Android 通过反射启动未安装的APK中的Activity

    在Android系统中,反射机制是一种强大的编程技巧,它允许运行时动态访问类、接口、字段和方法,即使这些元素在编译时未知。通过反射,我们可以执行一些在常规编程中无法实现的操作,例如启动未安装的APK中的Activity...

    Android学习之路——5.Activity子类

    在Android应用开发中,Activity是Android四大组件之一,它是用户界面的主要载体,负责与用户进行交互。本篇文章将深入探讨Activity的子类化及其在实际开发中的应用。通过子类化Activity,我们可以更好地组织代码,...

    Android电源管理相关应用技巧分享

    首先,从Java应用层面来看,Android提供了`android.os.PowerManager`类来控制设备电源状态。开发者可以使用`PowerManager`提供的方法来获取不同级别的唤醒锁(Wake Lock),以防止设备在特定操作执行期间进入休眠...

    Android-以卡片视图的形式管理你的Activity

    在Android应用开发中,设计一个用户友好的界面是至关重要的,而卡片视图(CardView)则是一种流行且实用的设计元素。"Android-以卡片视图的形式管理...通过熟练掌握这些技巧,你的Android应用将变得更加生动和吸引人。

    Android Activity切换动画 时间日期选择器.rar

    在Android开发中,Activity的切换动画是提升用户体验的重要一环,它可以使得应用的交互更加流畅且具有视觉吸引力。"Android Activity切换动画 时间日期选择器.rar"这个资源包中,包含了不同类型的Activity切换动画...

    C#开发Android应用实战 使用Mono for Android和.NET C#(美)麦克卢尔

    3. **Android应用架构**:书会讲解Android应用的基本结构,如Activity、Service、BroadcastReceiver、ContentProvider等核心组件的使用,以及AndroidManifest.xml文件的作用和配置。 4. **UI设计与布局**:书中会...

    拦截Activity的项目

    在Android开发中,拦截Activity的启动流程是一种高级技巧,它能让我们在应用程序的不同阶段执行自定义操作,例如权限检查、日志记录、性能优化或添加自定义行为。本项目"拦截Activity的项目"旨在教授如何实现这样的...

    android 开发技巧总汇

    Activity是Android应用的基本单元,用于显示用户界面和处理用户交互。通过`startActivity(Intent intent)`启动新的Activity。若需传递数据,可以使用Intent的`putExtra(String name, Parcelable value)`方法,将...

Global site tag (gtag.js) - Google Analytics