您的位置:首页 > 移动开发 > Android开发

【Android】Activity入门

2016-06-10 17:27 260 查看

Activity简介

在现实生活中,我们经常会使用手机打电话、发短信、玩游戏、等,这就需要与手机界面进行交互。在Android系统中,用户与程序的交互是通过Activity完成的。简单的说,一个界面就是一个Activity。同时,Activity也是Android四大组件中最常用的一个。Android四大组件分别是:activity、service(服务)、content
provider(内容提供者)、broadcast receiver(广播接收者)。




Activity启动模式

Android采用任务栈(Task)的方式来管理Activity的实例。当启动一个应用时,Android就会为之创建一个任务栈,先启动的Activity压在栈底,后启动的Activity放在栈顶,通过启动模式可以控制Activity的任务栈中的加载情况。在实际的开发中,应根据特定的需求为每个Activity指定恰当的启动模式。Activity的启动模式有4种,分别是standard、singleTop、singleTask、singleInstance。在AndroidMainfest.xml中,通过<activity>标签的android:launchMode属性可以设置启动模式。

Standard模式:在standard模式下,每启动一个Activity,它就会进入任务栈,并处于栈顶的位置,不会判定该Activity是否在栈中存在,每次启动都会创建一个新的实例,栈中的Activity满足先进后出的原则。Standard是Activity默认的启动模式,在不指定Activity启动模式的情况下,所有Activity使用的都是standard模式。

SingleTop模式:与standard不同的是,如果要启动的实例Activity位于栈顶,可复用这个Activity。

SingleTask模式:这种模式要求,每次启动一个Activity时,都会先检查栈中是否存在该实例。存在则直接使用,其上的Activity出栈。也就是说,这种模式要求栈中的同一Activity只能出现一次。

SingleInstance模式:更厉害,整个系统中,此模式的Activity只能存在一个。会有一个单独个任务栈来管理这个Activity。启动这个Activity时,系统会先创建一个新的任务栈,再创建这个实例并把它放在栈顶。如果要启动的这个Activity已经存在,无论位于哪个应用程序或任务栈,都会把该Activity所在的任务栈转到前台显示出来。

Activity生命周期

生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为3种状态,分别是运行状态、暂停状态和停止状态。

运行状态当Activity在平模的最前端时,它是可见的、有焦点的,可以用来处理用户的常见操作,如点击、双击、长按事件等,这种状态称为运行态。

暂停状态比如说手机要删除一个东西,会弹出一个提示,提示框不会覆盖下面的界面,下面的界面就是暂停状态的Activity。在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。例如,当最上面的Activity没有完全覆盖屏幕或者是透明的,被覆盖的Activity仍然对用户可见,并且存活(它保留着所有的状态和成员信息并保持与Activity管理器的连接)。但当内存不足时,这个暂停状态的Activity可能会被杀死。

停止状态当Activity完全不可见时,它就处于停止状态。但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的,如果当系统内存不足时,这个Activity很容易被杀死。

Activity从一种状态转为另一种状态时会触发一些事件,执行回调方法来通知状态的变化,具体方法如下:

OnCreate(BundlesavedInstanceState):创建时执行

OnStart():可见时执行

Onrestart():回到前台,再次可见时执行

Onresume():获取焦点时执行

Onpause():失去焦点时执行

Onstop():用户不可见进入后台时执行

OnDestroy():销毁时执行



总结

这些也算是基本的知识点的罗列,Activity在Android实际的开发中是很基础也很重要的东西,毕竟是四大组件之一嘛,还得一步一步来,慢慢总结,也要在实践中去认真体会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: