📜  Android-活动(1)

📅  最后修改于: 2023-12-03 14:59:16.934000             🧑  作者: Mango

Android活动

简介

在Android中,活动(Activity)是管理界面的基本组件之一。活动负责处理用户界面和与用户的交互,使用户能够感知和控制应用程序的行为。每个活动都有一个UI界面,它显示给用户进行输入和操作。活动还可以从其他应用程序中接收数据,如果需要,可以向其他应用程序发送数据。

生命周期

活动的生命周期是指从活动创建到销毁的整个过程。Android系统负责控制活动的生命周期,并在不同的阶段调用活动的一些方法,以便开发人员执行必要的操作。一个活动可以通过重写onCreate()onStart()onResume()onPause()onStop()onDestroy()等方法来控制生命周期。

下面是活动的生命周期图:

活动生命周期

以下是每个生命周期的作用:

  • onCreate():在活动被创建时调用,通常在此处进行一些初始化操作;
  • onStart():在活动可见但还未出现在前台时调用,通常在此处完成一些准备工作;
  • onResume():在活动出现在前台且可见时调用,此时活动处于运行状态;
  • onPause():在活动失去焦点但仍可见时调用,通常在此处保存数据或释放资源;
  • onStop():在活动被停止并不再可见时调用,通常在此处释放大量内存等资源;
  • onDestroy():在活动被销毁前调用,在此处进行一些清理工作。
启动活动

在Android中,一个活动可以通过Intent来启动其他活动。有两种启动活动的方式:

  • 显式启动:直接指定要启动的活动的类名。例如:

    Intent intent = new Intent(ActivityA.this, ActivityB.class);
    startActivity(intent);
    
  • 隐式启动:通过指定动作(Action)和数据(Data)来启动活动。例如:

    Intent intent = new Intent("com.example.myapplication.ACTION_START");
    intent.addCategory("com.example.myapplication.CATEGORY_SAMPLE");
    startActivity(intent);
    

    在此示例中,我们指定了动作为com.example.myapplication.ACTION_START,并指定了一个类别为com.example.myapplication.CATEGORY_SAMPLE,这表明只有声明了相同动作和类别的活动才能相应这个Intent。

活动数据传递

在Android中,一个活动可以给另一个活动传输数据。我们可以使用Intent来传输数据,有以下三种方式:

  • 传输键值对:使用IntentputExtra()方法将键值对添加到Intent中。

    Intent intent = new Intent(ActivityA.this, ActivityB.class);
    intent.putExtra("param1", "Hello");
    intent.putExtra("param2", "World");
    startActivity(intent);
    

    在被启动的活动中,我们可以使用getIntent()方法获取传递过来的Intent,然后使用getXXXExtra()方法获取对应的值。

    Intent intent = getIntent();
    String param1 = intent.getStringExtra("param1");
    String param2 = intent.getStringExtra("param2");
    
  • 传输实现Serializable接口的对象:实现Serializable接口的对象可以通过Intent来传输。

    Intent intent = new Intent(ActivityA.this, ActivityB.class);
    MyObject myObject = new MyObject();
    intent.putExtra("my_obj", myObject);
    startActivity(intent);
    

    在被启动的活动中,我们可以使用getSerializableExtra()方法获取传递过来的对象。

    Intent intent = getIntent();
    MyObject myObject = (MyObject) intent.getSerializableExtra("my_obj");
    
  • 传输实现Parcelable接口的对象:实现Parcelable接口的对象也可以通过Intent来传输。

    Intent intent = new Intent(ActivityA.this, ActivityB.class);
    MyObject myObject = new MyObject();
    intent.putExtra("my_obj", myObject);
    startActivity(intent);
    

    在被启动的活动中,我们可以使用getParcelableExtra()方法获取传递过来的对象。

    Intent intent = getIntent();
    MyObject myObject = intent.getParcelableExtra("my_obj");
    
结语

活动是Android开发中常用的组件之一,本文简单介绍了活动的生命周期、如何启动活动以及如何在活动之间传输数据。希望对Android开发初学者有所帮助。