Android 应用程序组件之Activities

Android 应用程序组件

应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。
以下是可以在Android应用程序中使用的四个主要组件。
组件 描述
Activities 描述UI,并且处理用户与机器屏幕的交互。
Services 处理与应用程序关联的后台操作。
Broadcast Receivers 处理Android操作系统和应用程序之间的通信。
Content Providers 处理数据和数据库管理方面的问题。

Activities

一个活动标识一个具有用户界面的单一屏幕。举个例子,一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。当应用程序拥有多余一个活动,其中的一个会被标记为当应用程序启动的时候显示。
一个活动是Activity类的一个子类,如下所示:
public class MainActivity extends Activity {

}
Android 活动(Activity)代表了一个具有用户界面的单一屏幕,如 Java 的窗口或者帧。Android 的活动是 ContextThemeWrapper 类的子类。
如果你曾经用 C,C++ 或者 Java 语言编程,你应该知道这些程序从 main() 函数开始。很类似的,Android 系统初始化它的程序是通过活动中的 onCreate() 回调的调用开始的。存在有一序列的回调方法来启动一个活动,同时有一序列的方法来关闭活动,如下面的活动声明周期图所示:
这里写图片描述
Activity 类定义了下面的回调。你可以不用实现所有的回调方法。当了解其中的每一个非常的重要,实现这些可以保证你的应用行为如用户所期望的那样。
回调 描述
onCreate() 这是第一个回调,在活动第一次创建是调用
onStart() 这个回调在活动为用户可见时被调用
onResume() 这个回调在应用程序与用户开始可交互的时候调用
onPause() 被暂停的活动无法接受用户输入,不能执行任何代码。当当前活动将要被暂停,上一个活动将要被恢复是调用
onStop() 当活动不在可见时调用
onDestroy() 当活动被系统销毁之前调用
onRestart() 当活动被停止以后重新打开时调用
实例
这个实例通过简单地步骤展示 Anroid 应用程序活动的生命周期。按照下面的步骤来修改我们在 Hello World 实例章节中创建的 Android 应用程序。
步骤 描述
1 使用eclipse IDE来创建一个Android应用程序,并命名为HelloWorld放在com.example.helloworld包下。如之前Hello World Example章节中介绍。
2 按照下面修改主要活动文件MainActivity.java。保持其他部分不变。
3 运行应用程序来打开Android模拟器,并检查应用程序的修改结果。
下面是主要活动文件src/com.example.helloworld/MainActivity.java修改的内容。里面包含每一个基本的生命周期方法。Log.d()方法用来生成日志信息:
package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;

public class MainActivity extends Activity {
String msg = “Android : “;

/* 当活动第一次被创建时调用 /
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, “The onCreate() event”);
}

/* 当活动即将可见时调用 /
@Override
protected void onStart() {
super.onStart();
Log.d(msg, “The onStart() event”);
}

/* 当活动可见时调用 /
@Override
protected void onResume() {
super.onResume();
Log.d(msg, “The onResume() event”);
}

/* 当其他活动获得焦点时调用 /
@Override
protected void onPause() {
super.onPause();
Log.d(msg, “The onPause() event”);
}

/* 当活动不再可见时调用 /
@Override
protected void onStop() {
super.onStop();
Log.d(msg, “The onStop() event”);
}

/* 当活动将被销毁时调用 /
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, “The onDestroy() event”);
}
}
活动类从项目的res/layout中的XML文件加载所有的UI组件。下面的语句从res/layout/activity_main.xml文件中加载UI组件:
setContentView(R.layout.activity_main);
一个应用程序可以有1个或多个活动,而没有任何限制。每个为应用程序所定义的活动都需要在AndroidManifest.xml中声明。应用的主要活动需要在清单中声明,且意图过滤器标签中需要包含 MAIN 动作和 LAUNCHER 类别。如下:

猜你喜欢

转载自blog.csdn.net/weixin_42363997/article/details/81306168