Android Activity(活动)

你好!

简介

Activity代表了一个用户界面的单一屏幕。就是人们平时看到的单一的手机界面。Android的活动是ContextThemeWrapper类的子类。Activity的初始化是通过它生命周期的onCreate()回调的调用开始的,至onDestroy()回调的调用结束,下面是Activity的生命周期示意图:
在这里插入图片描述
Activity类定义了下面的这些回调。你不必实现所有的回调方法。但是必须熟练的了解每一个方法,实现这些可以保证你的应用行为如用户所期望的那样。

生命周期

  • onCreate() : 这是第一个回调,在Activity创建时调用
  • onStart() : 这是第二个回调,在Activity可见时被调用,注:只是可见,但是此时用户还看不见,因为它此时还不是屏幕最上面显示的那个activity
  • onResume() : 这个回调是
    activity与用户开始课交互的时候调用的,注:真正的可见,在屏幕显示的最上面,可以看到,可以点击滑动等进行交互
  • onPause() : 被暂停的activity无法接受用户的输入,不能执行任何代码。当当前activity将要被暂停,那么,另一个activity将要被恢复使用
  • onStop() : activity不可见时被调用,这时候是有一个新的Activity经过onResume将要盖到这个activity的上面
  • onDestroy() : 当activity被销毁之前调用
  • onRestart() : 当activity被停止以后重新打开时调用,就是经过了
  • onStop而没有执行onDestroy。

实例

这个实例通过简单地步骤展示 Android 应用程序活动的生命周期。按照下面的步骤来修改我们在 Hello World 实例章节中创建的 Android 应用程序。

  1. 使用AndroidStudio来创建一个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");
   }
}

Activity从项目的res/layout中的XML文件加载所有的UI组件。下面的语句从res/layout/activity_main.xml文件中加载UI组件:

setContentView(R.layout.activity_main);

一个应用程序可以有1个或多个活动,而没有任何限制。每个为应用程序所定义的活动都需要在AndroidManifest.xml中声明。应用的主要活动需要在清单中声明,且意图过滤器标签中需要包含 MAIN 动作和 LAUNCHER 类别。因为我们用的是AndroidStudio,所以,在你创建Activity时,as会自动在AndroidManifest.xml文件中配置。

然后运行刚刚我们刚改好的程序,点击绿色的三角形按钮(需要把手机插到电脑上,并且打开手机的usb调试),如果一切顺利,当看到这个程序运行到手机上以后,你就能看到LogCat窗口中看到日志信息:

07-19 15:00:43.405: D/Android :(866): The onCreate() event
07-19 15:00:43.405: D/Android :(866): The onStart() event
07-19 15:00:43.415: D/Android :(866): The onResume() event

当你将手机切换到桌面,你能看到:

<code>07-19 15:01:10.995: D/Android :(866): The onPause() event
07-19 15:01:12.705: D/Android :(866): The onStop() event
</code>

当你将程序再切换回来:

<code>07-19 15:01:10.995: D/Android :(866): The onRestar() event
07-19 15:01:12.705: D/Android :(866): The onResume() event
</code>

当你点击返回键:

07-19 15:33:15.687: D/Android :(992): The onPause() event
07-19 15:33:15.525: D/Android :(992): The onStop() event
07-19 15:33:15.525: D/Android :(992): The onDestroy() event

我是入梦,谢谢你的观看我的博客,如果有什么错误,请随时联系我,QQ:897589417

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值