美文网首页
Android核心对象Activity

Android核心对象Activity

作者: Lexie_qiqi | 来源:发表于2020-03-17 13:48 被阅读0次

Activity是安卓系统提供的一个可视的用户交互接口,所有和用户的交互都发生在这里。它类似于Windows的窗口,Activity在创建时生成各种创建视图,例如TextView,Button,这些视图负责具体的功能。Activity通常使用全屏模式,也有浮动窗口模式和嵌入模式。

Activity概述


Activity是安卓程序中最基本的模块,它是为用户操作而展示的可视化用户界面,一个安卓应用程序中可以只有一个Activity,也可以包含多个,其数目取决于程序设计。每个Activity都被授予一个默认的窗口以进行绘制,一般情况下这个窗口都是满屏的,但它也可以是一个位于其他窗口之上的小浮动窗口。

Activity显示的可视内容是由一系列视图构成的,这些视图均继承于View基类,每个视图都控制着窗口的一块特定矩形空间。父级视图包含并组织其子视图的布局,而底层视图则在他们控制的矩形中进行绘制,并对用户的操作进行相应。所以视图是Activity与用户进行交互的界面。比如说开发人员可以通过视图显示一个图片,然后在用户单击它时,产生相应的动作,这就是Activity。

Activity的四种状态


Running状态,当一个新的Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,处于可见,并可和用户交互的激活状态。可见

Paused状态,当Activity被另一个透明的或Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持链接,系统继续维护其内部状态,所以它依然可见,但是它已经失去了焦点,所以不可能与用户进行交互。可见

Stopped状态,当Activity不可见时,Activity将继续保存在内存中,持当时的所有状态和成员信息。假设系统别的地方需要内存的话,这时他是被收回的对象的主要候选。不可见

Killed状态,Activity被启动前,被移除Activity堆栈。不可见

Activity的生命周期


安卓程序创建时,系统会自动在其java源文件中重写Activity类的onCreate方法,该方法创建Activity时必须调用的一个方法,另外,Activity类中还提供了诸如onStart,onResume,onPause,onStop,onDestroy等方法,这些方法的先后执行顺序构成了Activity对象的一个完整生命周期。

Activity的属性


Activity是作为对象存在的,所以也支持很多xml属性

android:name指定的是该activity的实现类,.类名,如果该实现类与AndroidMenufest.xml的manifest指定的package中,可以只写类名或者加点


创建Activity


创建安卓项目时,系统会默认创建一个activity,也可以手动创建。

配置Activity


在AndroidMenuTest.xml文件中使用Activity标志进行配置

在application标记里添加activity标记

启动和关闭Activity


启动Activity

在安卓项目中,如果只要一个Activity,那么只需要在配置文件中配置它,并且将其设置为程序的入口,这样当运行该项目时,这个Activity将自动被启动,否则将运用startActivity方法来启动

public void startActivity(Intent intent) 有一个入口参数,无返回值,这个入口参数是一个意图,intent是安卓中各组件的通信方式。一个activity通过intent来表达自己的intent,在创建intent对象时,需要指定想要被启动的activity。

Intent intent = new Intent(MainActivity.this, DetailActivity.class);

startActivity(intent);

关闭Activity

public void finish() 没有入口参数,也没有返回值。所以只用在Activity当中调用该方法就可以了。例如,想要在单击按钮时,关闭当前的Activity,就使用以下代码

Button btn = (Button)findViewById(R.id.button);

b.setOnClickListener(...{public void onClick(View v) {finish();})

多个Activity的使用


使用Bundle在Activity之间交换数据,当在一个Activity中启动另一个Activity时,经常需要传递一些数据过去,这是通过intent来实现,intent经常被称为两个Activity间的信使,通过将要传递的数据保存在intent中,就可以将其传递到另一个Activity中了,在安卓中,可以将要保存的数据放到Bundle对象中,用Bundle提供的putCharSequence方法,然后通过intent提供的putExtras方法将要携带的数据保存在intent对象中。用startActivity方法启动一个新的Activity 

调用另一个Activity并返回结果

相关文章

网友评论

      本文标题:Android核心对象Activity

      本文链接:https://www.haomeiwen.com/subject/eaozehtx.html