Android之Activity

本文详细介绍了Android中的Activity组件,包括其作用、使用方法、生命周期及启动模式,并提供了具体的代码示例。

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

Android之Activity

Activity作为Android四大组件之一可以说是最常见也是最重要的,它主要承担着用户于屏幕交互的职责,
对它的理解主要从以下几个方面开始:
  • Activity的使用
  • Activity的生命周期
  • Activity的启动模式
Activity的使用

创建Activity,然后根据自己的需要重写它的生命周期,大概如下:

public class FirstActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 表示activity正在被创建,这是生命周期的第一个方法,我们可以去左一些初始化的工作,
        //比如调用setCcontentView加载界面布局资源,初始化需要的数据等。
    }
    @Override
    protected void onStart() {
        super.onStart();
        // activity正在被启动,这是意见可见,但是还没出现在前台
    }
    @Override
    protected void onResume() {
        super.onResume();
        // 表示activity已经可见
    }
    @Override
    protected void onPause() {
        super.onPause();
        // 表示activity正在停止,不能在此做重量级的操作
    }
    @Override
    protected void onStop() {
        super.onStop();
        // 即将停止,可以做一些不太耗时的回收工作
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // activity即将被销毁,在这里做回收工作和最终的资源释放 
    }
}

在activity创建完成后必须要到manifest 文件中声明

<manifest ... >
  <application ... >
      <activity android:name=".FirstActivity" />
      ...
  </application ... >
  ...
</manifest >

不然系统会报错android.content.ActivityNotFoundException,
一般会指定应用中的某个 Activity 为“主”Activity,即首次启动应用时呈现给用户的那个 Activity。设置的方式如下:

<activity android:name=".activity.WelComeActivity">
   <intent-filter>
       <action  android:name="android.intent.action.MAIN"/>

       <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

其中<action android:name="android.intent.action.MAIN"/>决定了应用最先启动的Activity。而<category android:name="android.intent.category.LAUNCHER"/>决定应用程序是否显示在程序列表里。
一个应用一般都包含多个activity,例如我们需要从FirstActivity跳转到SecondActivity,我们需要新建SecondActivity并且在manifest文件中声明,然后通过Intent实现跳转:

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

当我们需要从SecondActivity返回数据的时候我们需要用到下面的跳转方法:

int REQUESTCODE = 10000;
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent,REQUESTCODE );

至此基本就把activity的基本使用介绍完了,其实只要掌握了它的生命周期,使用起来还是挺简单的。

Activity的启动模式

(1) standard: 标准模式,也是默认模式。在这种模式下,每次启动一个activity都会重新创建一个新的实例,不管这个实例之前是否存在。

(2) singleTop: 栈顶复用模式。其实这也是一种单例模式,每次启动activity的时候系统都会寻找是存在并且位于栈顶,如果存在那么这个activity就不会被重新创建。如果不存在,就会创建一个新的任务栈。

(3) singleTask: 栈内复用模式。只要activity在栈内存在就不会创建新的实例。

(4) singleInstance: 单实例模式。具有这种模式的activity只能单独的位于一个任务栈。

上面分别介绍了activity的四种启动模式,下面介绍两种方法给activity指定启动模式,第一种直接在AndroidManifest中,如下:

<activity android:name=".activity.ViewTestActivity"
          android:launchMode="singleInstance"/>

第二种是通过Intent设置标志来指定Activity的启动模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值