优质的企业网站建设,网站开发的课程,o2o网站运维建设方案,制作视频网站开发Activity代表具有用户界面的单个屏幕#xff0c;就像Java的窗口或框架一样。Android Activity 是ContextThemeWrapper类的子类。 如果您使用过C#xff0c;C或Java编程语言#xff0c;那么您一定已经看到您的程序从 main()函数开始。与之非常相似#xff0c;Android系统以 …
Activity代表具有用户界面的单个屏幕就像Java的窗口或框架一样。Android Activity 是ContextThemeWrapper类的子类。 如果您使用过CC或Java编程语言那么您一定已经看到您的程序从 main()函数开始。与之非常相似Android系统以 Activity 来启动其程序该程序以对 onCreate()回调方法的调用开始。有一系列启动Activity的回调方法和一系列拆除Activity的回调方法如下面的Activity生命周期图所示:( image courtesy:android.com ) Activity类定义了以下回调即事件您不需要实现所有的回调方法但是重要的是您必须了解每一个那些确保您的应用程序符合用户期望的行为。
Sr.NoCallback 描述1 onCreate() 这是第一个回调并在首次创建Activity时调用。 2 onStart() 当Activity对用户可见时将调用此回调。 3 onResume() 当用户开始与应用程序进行交互时将调用此方法。 4 onPause() 暂停的Activity不接收用户输入并且不能执行任何代码并且在当前Activity被暂停并且上一个Activity正在恢复时将无法调用。 5 onStop() 当Activity不再可见时将调用此回调。 6 onDestroy() 在Activity销毁系统之前将调用此回调。 7 onRestart() Activity停止后重新启动时将调用此回调。
本示例将带您通过简单的步骤来展示Android应用程序Activity的生命周期。
以下是修改后的主要Activity文件 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 : ;/** 在第一次创建Activity时调用。 */Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.d(msg, The onCreate() event);}/** 当Activity即将变得可见时调用。 */Overrideprotected void onStart() {super.onStart();Log.d(msg, The onStart() event);}/** 当Activity变得可见时调用。 */Overrideprotected void onResume() {super.onResume();Log.d(msg, The onResume() event);}/** 当另一个Activity获得焦点时调用。 */Overrideprotected void onPause() {super.onPause();Log.d(msg, The onPause() event);}/** 当Activity不再可见时调用。 */Overrideprotected void onStop() {super.onStop();Log.d(msg, The onStop() event);}/** 在Activity被销毁之前调用。 */Overridepublic 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);
一个应用程序可以具有一个或多个Activity而没有任何限制您为应用程序定义的每个Activity都必须在AndroidManifest.xml文件中声明并且应用程序的MainActivity必须在清单中使用intent-filter声明其中包括MAIN操作和LAUNCHER类别如下所示:
?xml version1.0 encodingutf-8?
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.learnfk7.myapplicationapplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:supportsRtltrueandroid:themestyle/AppThemeactivity android:name.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest
如果未为您的一项Activity声明MAIN操作或LAUNCHER类别则您的应用程序图标将不会出现在主屏幕的应用程序列表中。
让无涯教程尝试运行刚刚修改的修改后的 Hello World!应用程序。无涯教程假设您在进行环境设置时创建了 AVD 。要从Android Studio运行该应用程序请打开您项目的Activity文件之一然后单击运行工具栏。 Android studio将应用安装在您的AVD上并启动它如果设置和应用程序一切正常它将显示模拟器窗口并且您应该在Android Studio的 LogCat 窗口中看到以下日志消息-
08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event 让无涯教程尝试单击Android仿真器上的锁定屏幕按钮它将在android studio中的 LogCat 窗口中生成以下事件消息:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
让无涯教程再次尝试在Android模拟器上解锁屏幕它将在Android Studio的 LogCat 窗口中生成以下事件消息:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
接下来让无涯教程再次尝试在Android仿真器上单击后退按钮它将生成以下事件在Android Studio的 LogCat 窗口中显示消息从而完成了Android应用程序的Activity生命周期。
08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event Android - Activity - 无涯教程网无涯教程网提供Activity代表具有用户界面的单个屏幕就像Java的窗口或框架一样。Android Activity...https://www.learnfk.com/android/android-acitivities.html