java中的Activity

Java的Activity在Android开发中扮演关键角色,因为一些特定代码必须在Activity内执行才能获取系统或硬件信息。单独创建工具类无法实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity
首先,Activity是Android系统中的四大组件之一,可以用于显示View。Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了。

在深入了解Activity之前,我们先要知道一下 MVC设计模式 ,在JAVAEE 中 MVC设计模式 已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在 Android开发 中的应用不是很清楚,下面我就先来介绍一下MVC在 Android开发 中的应用:

M(Model 模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的操作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。
V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般采用 XML文件 里德 界面的描述,使用的时候可以非常方便的引入,当然也可以使用JavaScript+Html等方式作为View。
C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model 业务逻辑层 处理。

好了,在介绍过Android应用开发中的MVC架构后,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的Vi ew ,也可以从View中获取数据然后把数据传给Model层进行处理 ,最后再来显示出处理结果。

介绍过Activity的主要作用后,那么我们就要详细说一下A ctivity了。
Activity生命周期图

Activity 的生命周期是被以下的函数控制的。
public class Activity extends ApplicationContex t {
protected void onCreate(Bun dle i cicle);
protected void onStart () ;
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}

onCreate(Bundle ) 函数是你进行初始化的地 方,这个也是执行
setContentView(View)函数的地方 ,setContentV iew(View)函数可以传入一个由XML
编制的 UI界面 ,可以使UI和 具体实现完全分离。
onPause()函数是处理用户 离开 当前 Activity 的 地方。更重要的是,任何在当前
Activity中的任何改变都要在这个函数中提交。

Activity有四种状态
活动状态,当Activity处于Stack (栈)顶时,就是手机当前的现实屏幕 ,这是 Activity就
处于activity或者运 行状 态。
运行但是失去焦点 ,当Activity还处于运行状 态时,但是屏幕是有另外一个Act ivity
处于文档处于焦 点状态,当前的Activity就处 于pause。
停止,当Activity被另一个Activity完 全覆盖的时候,就被停 止了,其实就是虽然
运行,但是用户却看不见。
结束,当Activity处于pause或者stop时,系统可以结束 Activ ity,回收资 源,这
是Activity就是处于结 束状态了。
处于结束状态的是Act ivity,如果要使用户可 见,只要重启才 可以。

Activity的 响应时间
当前Activity所在的线程为主线程,它的 响应时间 为5秒, 如果在当前运行的Activity中进行耗时的操作且 响应时间 起过5秒,那么程序就会 报ANR错误。所以,这也是不建议在Activity中写太 多复杂代码 的原因之一。

当然,有些代码只能写在Activity中,不然就运行不了(它们不是生命周期方法),比如你想要获得android系统或者硬件一的些信息,就必须在Activity中写出来,如果单独写一个工具类获得不了。


1.Activity的主要作用

Activity是Android一个非常重要的用户接口,是可见的,用户和应用程序之间进行交互的接口。在每个Activity中都可以放很多控件,所以也可以把Activity看作控件的容器。

2.创建Activity的要点

1)一个Activity就是一个类,并且这个类要继承Activity,而这个被继承的Activity来源于android.jar包
2)需要复写onCreate方法,当一个Activity第一次运行时Android操作系统就会调用onCreate方法
3)因为Activity是应用程序的组件,所以每一个Activity都必须在AndroidManifest.xml里面注册,manifest相当于应用程序清单。
4) 为Activity添加必要的控件

3.在AndroidManifest.xml文件中注册应用Activity的方法

1) 注册Activity的时候name的时候前面加点,因为和包名合起来就刚好是这个类(或者说Activity)的路径。
2) label,就是在页面上方白色的部分显示的文字
3)intent-filter,暂时不用管,意思就是你在哪个activity配置这个东西,哪个activity就在应用打开的时候第一个运行

4.在Activity中添加控件,就是在layout文件夹中创建布局文件(严格意义上来说并不是每一个Activity都要创建一个相应的xml布局文件,比如:TextView textview = new TextView(this);

//以前我一直以为每创建一个Activity必须相应地也要创建一个layout文件,现在发现不是这样,也可以按照这个方法,创建一个简单的TextView,把Context设置为this,设置一个文本值,然后再将这个TextView设置为ContentView.这种个人觉得更加方便测试吧。

textview.setText("This is the Artists tab");

setContentView(textview);

}

}

这样的方法同样工作,但是总的来说还是建议为每一个Activity定义一个布局文件。

1) 程序中的setContentView就是设置这个Activity所使用的布局文件。
比如:setContentView(R.layout.my_text); //说到这里,注意一个问题,布局文件的名称不允许有大写
2) 在xml文件中设置的控件id会在R.java中生成id
3)在应用程序中使用findViewById来取得布局文件中的控件(前提是布局文件中的控件必须设置相应的id),因为它的返回类型为View,所以要强制类型转换为控件类型
举个例子就是 Button button =(Button)findViewById(R.id.button);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值