热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidStudio中Activity组件详解

本文介绍了Android开发中Activity的基本概念、生命周期、状态转换以及如何创建和管理Activity。通过详细的解释和示例代码,帮助开发者更好地理解和使用Activity。
一、Activity 基本概念

Activity 是 Android 应用程序的基本构建块之一,用于提供用户界面并与用户进行交互。每个 Activity 都是一个独立的屏幕,可以包含各种 UI 元素。



二、Activity 的状态

1. 运行状态


当 Activity 处于栈顶时,它处于运行状态,此时系统最不可能回收该 Activity。



2. 暂停状态


当 Activity 不在栈顶但仍部分可见时,它进入暂停状态。例如,当一个新的透明 Activity 被启动时,原来的 Activity 就会进入暂停状态。



3. 停止状态


当 Activity 完全不可见时,它进入停止状态。此时,系统可能会选择回收该 Activity 以释放资源。



4. 销毁状态


当 Activity 被从栈中移除时,它进入销毁状态。这是系统最可能回收的 Activity 状态,以确保内存充足。



三、Activity 生命周期

Activity 的生命周期由多个回调方法组成,这些方法在 Activity 的不同状态之间转换时被调用。



1. 生命周期方法


Activity 生命周期图



1.1 onCreate()


当 Activity 第一次创建时调用,通常用于初始化 Activity,如设置布局文件和绑定成员变量。



1.2 onStart()


当 Activity 从不可见到可见时调用,通常用于执行一些初始化操作。



1.3 onResume()


当 Activity 准备与用户交互时调用,此时 Activity 处于栈顶且处于运行状态。在这个方法中可以执行一些轻量级的操作以提高用户体验。



1.4 onPause()


当 Activity 准备去启动或恢复另一个 Activity 时调用。在这个方法中应保存一些关键状态,以防系统因内存不足而销毁 Activity。



1.5 onStop()


当 Activity 完全不可见时调用。可以在这个方法中执行一些耗时的操作,如写入数据库。



1.6 onDestroy()


当 Activity 被销毁前调用,通常用于释放资源。



1.7 onRestart()


当 Activity 从停止状态重新变为可见时调用。可以在这个方法中恢复 Activity 的状态。



四、Activity 栈管理

Android 使用任务栈来管理 Activity。每个应用启动时都会创建一个任务栈,新的 Activity 实例会被压入栈中。栈顶的 Activity 总是可见且可交互的。



五、创建和管理 Activity

1. 创建 Activity


a. 创建新类


在项目中创建一个新的 Java 类,并继承自 android.app.Activity



b. 复写 onCreate() 方法


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}


c. 创建布局文件


res/layout 目录下创建一个新的布局文件。



d. 设置布局


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


e. 在 AndroidManifest.xml 中注册 Activity





2. 启动 Activity


a. 创建按钮


    android:id="@+id/button_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动新 Activity" />


b. 添加点击事件


Button buttOnStart= findViewById(R.id.button_start);
buttonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, NewActivity.class);
startActivity(intent);
}
});


3. 关闭 Activity


a. 创建按钮


    android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出 Activity" />


b. 添加点击事件


Button buttOnExit= findViewById(R.id.button_exit);
buttonExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});


六、Activity 启动模式

Activity 的启动模式包括 standard、singleTop、singleTask 和 singleInstance。每种模式决定了 Activity 如何被创建和添加到任务栈中。



七、Intent 的使用

1. 显式 Intent


显式 Intent 用于直接启动已知的 Activity。


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


2. 隐式 Intent


隐式 Intent 通过 action 和 category 来匹配目标 Activity。


Intent intent = new Intent();
intent.setAction("com.example.ACTION_NAME");
startActivity(intent);


AndroidManifest.xml 中声明 Intent Filter:









推荐阅读
author-avatar
张骞在这里
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有