android之Activity

本文详细介绍了Android中的Activity概念,包括创建Activity的方法、为Activity添加布局的过程、实现Activity间跳转的具体步骤,以及Activity的生命周期等内容。

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

一、什么是Acitivity

Activities是一个程序的组件之一。它的主要功能是提供界面。

一个程序一般由多个Activity组成,各Activity之间关系很松散,它们之间没有直接的关联。必须有一个Activity被指定为主Activity,它是程序启动时首先显示的界面。每个Activity都可以随意启动其它的Activity。每当一个Activity被启动,则前一个Activity就被停止。一个程序中的所有启动的Activity都被放在一个栈中,所以被停止的Activity并没有销毁,而在存于栈中。新启动的Activity先被存放于栈中,然后获得输入焦点。在当前活动的Activity上点返回键,它被从栈中取出,然后销毁,然后上一个Activity被恢复。

       当一个Activity因为新的Activity启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回调方法以通知Activity,这些回调方法被统称为生命周期回调方法。这些回调方法分别在Activity被创建、停止、恢复、销毁时被调用。

二、如何创建Activity

1、创建一个Activity类的子类。

2、在清单文件AndroidMainfestapplication标签中注册此Acitivity

       例、

<activityandroid:name="com.example.myfirstapp.MainActivity"></activity>

       如果我们要把新建的Activity作为程序的入口时,那么我们就要在此Acitivity的标签中加入一个intent-fileter标签

       例、

<activityandroid:name="com.example.myfirstapp.MainActivity">
<intent-filter>
                     <actionname="android.intent.action.MAIN"/>
                     <category name="android.intent.category.LAUNCHER"/>
                     </intent-filter>
</activity>

android.intent.action.MAIN是说明此Acitivity是程序的入口,android.intent.category.LAUNCHER表示此入口为系统图标或快捷方式启动。

 

三、为Acitivity添加布局

       res/layout下创建一个xml格式的布局文件,并选定它拥有的布局方式(四种布局方式LinearLayoutRelativeLayoutAbsoluteLayoutFrameLayoutTableLayout)。

然后根据自己的意愿来添加控件(按钮、文本框、输入框等)。


四、从一个Activity启动到另一个Activity

       创建一个Intent并指明要从哪个Acitivity跳转到哪个Activity,然后利用startActivity的方法来实现此跳转。

例、

Intent intent_toSecondActivity = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent_toSave);

这样就可以实现由MainAcitivity跳转到SecondActivity

 

有时,你可能想从你启动的activity获得其执行后返回的结果。那么我们可以使用startActivityForResult()来启动新的Activity(不再使用startActivity),然后,你的程序还需要定义回调方法onActivityResult()。当新的Activity运行结束时,他把一个intent返回给你的程序,这个intent是在onActivityResult()中被接收的。

例、要实现从MainActivity启动到SecondActivity,返回时使MainActivity刷新数据

 

MainActivity部分代码:

Public void startScendActivity(){
Intent intent = new Intent(MainActivity.this,SecondActivity.this);
startActivityForResult(intent,1);
}
@Override
       protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {
              //
              super.onActivityResult(requestCode,resultCode, data);
              //判断请求码
              if(requestCode== 1){
                     //判断结果码
                     if(resultCode== 2){
                            //刷新数据
                            refreshView();
                     }
              }
       }

SecondActivity部分代码:

<span style="font-size:10px;">SetResult(2);
Finish();</span>

五、Activity的生命周期

 

Activity7个基本的生命周期(onCreateonStartonResumeonPauseonStoponDestroyonRestart)。

onCreate Activity被创建的时候,做一些数据的初始化工作。

onStart界面被创建的时候, onStart方法执行完毕后,我们就可以在屏幕上看到界面,此时为用户可见不可操作的状态。

onResume onResume方法执行完毕后,我们就可以通过屏幕对Activity进行操作了

onPause Activity被部分遮盖时,变为用户可见但不可操作的状态。

onStop Activity被完全被遮盖,或退到后台。

onDestroy这是Activitykill前最后一个被调用方法了,可能是其他类调用finish方法或者是系统为了节省空间将它结束掉。

onRestart onStop状态回到运行状态,需要执行的第一个生命周期。

 

在一个Activity正常启动过程中,这些方法调用的顺序是onCreate -> onStart -> onResume;在Activitykill掉的时候方法顺序是onPause -> onStop -> onDestroy,此为一个完整的生命周期。那么对于中断处理(比如电话来了),则是onPause -> onStop,恢复时onRestart->onStart -> onResume;如果当前应用程序的是一个ThemeTranslucent(半透明)或者DialogActivity那么中断就是onPause ,恢复的时候onResume

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值