📅  最后修改于: 2023-12-03 14:59:16.934000             🧑  作者: Mango
在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
来传输数据,有以下三种方式:
传输键值对:使用Intent
的putExtra()
方法将键值对添加到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开发初学者有所帮助。