【转】Android Activity类应用技巧分享

简介: onCreate和onDestory对应。onStart和onStop对应,onResume和onPause对应。 这几个函数大概是这样定义的,当启动一个Android Activity类的时候,onCreate方法首先会被启动,然后接着是onStart和onResume,也会启动,一般地,等这几个函数都启动完了之后你这个Activity就可以被显示出来了。

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来处理不同的情况。

相关文章
|
22天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
23天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
23天前
|
开发框架 安全 Android开发
探索安卓系统的新趋势:智能家居应用的蓬勃发展
随着智能家居概念的兴起,安卓系统在智能家居应用领域的应用日益广泛。本文将探讨安卓系统在智能家居应用开发方面的最新趋势和创新,以及其对用户生活的影响。
14 2
|
26天前
|
缓存 监控 Java
构建高效Android应用:从优化用户体验到提升性能
在竞争激烈的移动应用市场中,为用户提供流畅和高效的体验是至关重要的。本文深入探讨了如何通过多种技术手段来优化Android应用的性能,包括UI响应性、内存管理和多线程处理。同时,我们还将讨论如何利用最新的Android框架和工具来诊断和解决性能瓶颈。通过实例分析和最佳实践,读者将能够理解并实施必要的优化策略,以确保他们的应用在保持响应迅速的同时,还能够有效地利用系统资源。
|
27天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
13 0
|
1月前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
24天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。
|
29天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
17 4
|
1天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
1天前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第24天】随着移动开发技术的不断演进,提升应用性能和用户体验已成为开发者的核心任务。在Android平台上,Kotlin语言凭借其简洁性和功能性成为主流选择之一。特别是Kotlin的协程功能,它为异步编程提供了一种轻量级的解决方案,使得处理并发任务更加高效和简洁。本文将深入探讨Kotlin协程在Android开发中的应用,通过实际案例分析协程如何优化应用性能,以及如何在项目中实现协程。