关于Android中的四大组件(Activity)

一、Activity简述

Activity是Android应用中负责与用户交互的组件。在应用中创建自己的Activity需要继承Activity或者继承Activity的

子类。

public class TestActivity extends Activity {
}

二、Activity的使用

从图1.1可以看出Activity间接继承了ContextThemeWrapper、ContextWrapper、Context、Object这些基类,因此

Activity可以直接调用它们的方法。当然只是继承Activity是没有任何意义的,我们还需要实现Activity的一个或多个方

法。

图1.1

在平时开发中最常用到的是onCreate(Bundle savedInstanceState)方法,此方法在Activity创建时被回调,我们可

以通过setContentView方法的加载需要显示的视图。在Activity中提供了三个setContentView方法,见图1.2

图1.2

(1)public void setContentView(int layoutResID):从资源文件中加载布局ID

(2)public void setContentView(View view):加载一个视图到Activity中。

(3)public void setContentView(View view, ViewGroup.LayoutParams params):加载一个指定的视图到Activity

中,并通过params设置布局参数。

创建完我们需要的Activity后,还需要在AndroidMainfest.xml中进行配置。

<activity android:name="com.example.TestActivity">

当自己的Activity创建完毕后,我们需要启动或者进行销毁,Activity的启动可以使用以下两个方法:

(1)publicvoid startActivity(Intent intent):启动Activity。

(2)publicvoid startActivityForResult(Intent intent,intrequestCode):以指定的请求码requestCode启动Activity,

当启动的Activity返回时,可以通过onActivityResult(intrequestCode,int resultCode, Intent data)方法获取结果。

销毁Activity可以使用以下方法:

(1)publicvoid finish():结束当前Activity。

(2)publicvoid finishActivity(intrequestCode):结束以startActivityForResult(Intentintent,int
requestCode)方法启

动的Activity。

三、Activity之间的数据传递

当我们从一个Activity启动另一个Activity时,需要将一些数据传递过去,这时我们就需要使用Intent,可以使用

Intent提供的多个重载的putExtra方法来进行传递,见图1.3

图1.3

从图1.3可以看出,通过Intent可以传递的数据类型多种多样,相应的可以通过图1.4中的方法调用Intent的get方法,获

取相应的数据。

图1.4

四、Activity的生命周期

从Activity创建到销毁,Activity的状态大致可以分为以下四类:

(1)     活动状态:当前的Activity位于前台,用户可见,可以获得焦点。

(2)     暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。

(3)     停止状态:该Activity不可见,失去焦点。

(4)     销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束。

Activity的生命周期请参看图1.5所示:

图1.5

public class Activity extends ApplicationContext {
     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();

     protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy();
 }

onCreate(BundlesavedInstanceState):创建Activity时被回调。该方法只会被调用一次。

onStart():启动Activity时被回调。

onRestart():重新启动Activity时被回调。

onResume():恢复Activity时被回调,onStart()方法后一定会回调onResume()方法。

onPause():暂停Activity时被回调。

onStop():停止Activity时被回调。

onDestroy():销毁Activity时被回调。该方法只会被调用一次。

从图1.5可以得出,一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart-> onResume。

在Activity被干掉的时候顺序是onPause-> onStop -> onDestroy ,这样就是一个完整的生命周期。

如果中止的时候新出的一个Activity是全屏时的调用顺序是onPause->onStop,恢复的时候onStart->onResume。

如果打断 这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复 的时候

onResume 。

图1.6

从图1.6可以看出, onPause,onstop, onDestroy,三种状态 下 activity都有可能被系统干掉,为了保证程序的正

确性,你要在onPause()里写上持久层操作的代码,将用户编辑的内容都保存到存储介质上(一般都是数据库 )。看看

官网给出的例子:

public class CalendarActivity extends Activity {
     ...

     static final int DAY_VIEW_MODE = 0;
     static final int WEEK_VIEW_MODE = 1;

     private SharedPreferences mPrefs;
     private int mCurViewMode;

     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         SharedPreferences mPrefs = getSharedPreferences();
         mCurViewMode = mPrefs.getInt("view_mode", DAY_VIEW_MODE);
     }

     protected void onPause() {
         super.onPause();

         SharedPreferences.Editor ed = mPrefs.edit();
         ed.putInt("view_mode", mCurViewMode);
         ed.commit();
     }
 }

在onPause()中使用SharedPreferences.Editor进行写入,在onCreate(Bundle savedInstanceState)中进行读取。

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/47315083情绪控_

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-09 06:32:53

关于Android中的四大组件(Activity)的相关文章

关于Android中的四大组件(AIDL Service的使用)

跨进程调用Service(AIDL Service) Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 在前一篇文章(关于Android中的四大组件(Service的开启与关闭))中介绍了开发人员如何定制自己的服务,但这些 服务并不能被其它的应用程序访问,为了使其它的应用程序也可以访问本应用程序提供的服务,Android系统采用了 远程过程调用(Remote Procedure Call,RPC)方式来实现.与很多其它的基于RPC的解决方案一样,An

王立平--android中的四大组件

Android中称为四大组件的为别为:Activity/Service/BroadCast Recevicer/Content  provider Activity:activity是用户和应用程序交互的窗口,一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕. activity的生命周期:即"产生.运行.销毁",但是这其中会调用许多方法onCreate(创建) .onSta

Android基础之四大组件---Activity

Android基础之四大组件-Activity 1.什么是Activity 2.Activity生命周期 3.Activity生命周期演示 4.Activity之间的通信 5.Activity之加载模式 6.Activity的栈式管理 1.什么是Activity? Activity是用户接口程序,它是Android应用程序的基本功能单元,它的主要功能是提供界面.Activity是Android的核心类,该类的全名是android.app.Activity.Activity相当于C/S程序中的窗体

Android笔记(五十八)Android总结:四大组件——Activity篇

什么是Activity Activity是一种包含用户界面的组件,主要用于和用户进行交互,一个APP通常由多个Activity组成. 每个Activity都对应一个布局文件,通过setContentView()方法来载入布局文件.并且通过用户对布局文件中的组件所发出的事件来做出相应的反映. Activity的四种状态 1)激活状态,此时activity运行在屏幕前台 2)暂停状态,此时activity失去焦点,但是用户仍然可以看到(例如这个activity上遮盖了一个透明的或者非全屏的activ

Android四大组件——Activity

Activity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互的界面.再进一步说,当我们拿起Android打开拨号功能,显示出拨号盘的界面其实就是一个Activity:当然,可以更大范围的说,手机屏幕上显示的任何界面都是一个个Activity. 官方对Activity的描述 Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作,

【Android中Broadcast Receiver组件具体解释 】

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出相应处理的组件.非常多广播是源自于系统代码的──比方,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也能够进行广播──比方说,通知其他应用程序一些数据下载完毕并处于可用状态. ②应用程序能够拥有随意数量的广播接收器以对全部它感兴趣的通知信息予以响应.全部的接

Android中Broadcast Receiver组件具体解释

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出相应处理的组件.非常多广播是源自于系统代码的──比方,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也能够进行广播──比方说,通知其他应用程序一些数据下载完毕并处于可用状态. ②应用程序能够拥有随意数量的广播接收器以对全部它感兴趣的通知信息予以响应.全部的接

Android四大组件--Activity详解

Android四大组件--Activity详解 分类: android android应用android开发 本文的主要内容包括1.activity的建立.配置和使用:2.activity的跳转和传值:3.startActivityForResult:4.activity的生命周期. 1.activity的建立.配置和使用 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供一个可视的窗口,一般情况

Android开发四大组件--Activity详解

Android开发四大组件--Activity详解 - Android开发教程 Android开发的四大组件在开发中应用中是必不可少的,下面就来详解下四大组件之一Activity,总结自网络.Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()——>onStart()——>onResume() 当另一个Activity启动时: 第一个Activity onPause()——>第二个Activity onCreate()——>