Android四大套件Activity

鉴于之前Android四大套件一起看起来有点乱,分开来述说.相对之前,比较完善一点

Activity

  • 什么是Activity:Activity和我们所学的Servlet一样,和客户端服务器打交道

Activity是一个负责与用户交互的组件,Activity中所有操作都与用户密切相关,可以通过setContentView(View)来显示指定控件。

在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。

Activity是一种界面系统,只要是界面系统就包含三个组成(控件,布局,事件)

以下是一个用XMind总结的Activity简介

  • Activity生命周期
  • onCreate(Bundle savedInstanceState):

    创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!

    onStart():

    activity变为在屏幕上对用户可见时调用。

    onResume():

    activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。

    onPause():

    activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!

    onStop():

    activity被停止并转为不可见阶段及后续的生命周期事件时调用。

    onRestart():

    重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。

    onDestroy():

    activity被完全从系统内存中移除时调用,该方法被调用

    • 两个子循环,子生命周期

    第一层(内层)循环是:焦点的生命周期循环,在当前Activity的焦点获得与失去中循环,在这个过程中,Activity是始终可见的

    onPause()->onResume()->onPause()

    第二层(外层)循环是Activity周期循环,是当前Activity在可见和不可见之间循环

    onStart()->onResume()->onResume()->onPause()->onStop()

    • 生命周期划分:整体生命周期:onCreate()->...-onDestory()

    可视生命周期:onStart()->...->onStop()

    焦点生命周期:onResume()->onPause()

  • 以下是一个Activity生命周期图

  • Activity生命周期示例代码

1 onCreat状态   开始启动第一步 重新启动无
         @Override
         protected void onCreat(Bundle savedInstanceState) {
               super.onCreat(savedInstanceState);
               setContentView(R.layout.activity_main);
               initView();

2 onStart状态   开始启动第二步 重新启动第二步
         @Override
         protected void onStart() {
               super.onStart();
               setContentView(R.layout.activity_main);
               initView();
         }

3 onRestart状态   开始启动无 重新启动第一步
         @Override
         protected void onRestart() {
               super.onRestart();
               setContentView(R.layout.activity_main);
               initView();
         }

4 onResume状态   开始启动第三步 重新启动第三步
         @Override
         protected void onResumre() {
               super.onStart();
               setContentView(R.layout.activity_main);
               initView();
         }

5 onPause状态   暂停第一步 关闭第一步
         @Override
         protected void onPause() {
               super.onPause();
               setContentView(R.layout.activity_main);
               initView();
         }

6 onStop状态   暂停第二步 关闭第二步
         @Override
         protected void onStop() {
               super.onStop();
               setContentView(R.layout.activity_main);
               initView();
         }

7 onDestory状态   暂停无 关闭第三步
         @Override
         protected void onDestory() {
               super.onDestory();
               setContentView(R.layout.activity_main);
               initView();
         }

  • 以下是用法,示例的参考

  • Activity常用方法:

setContentView(int resId):设置Activity显示的布局

View findViewById(int resId)

finish():关闭当前的activity

  • Activity在屏幕旋转时的生命周期:

不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;

设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次;

设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

  • Activity启动模式:

在android里,有4种activity的启动模式,分别为:standard (默认)  singleTop  singleTask  singleInstance

当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在 AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置。

1. Standared模式(默认)

我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的实例,

退出Activity则会在任务栈中销毁该实例。

2. SingleTop模式

这种模式会考虑当前要激活的Activity实例在任务栈中是否正处于栈顶,如果处于栈顶则无需重新创建新的实例,会重用已存在的实例,否则会在任务栈中创建新的实例。

3. SingleTask模式

如果任务栈中存在该模式的Activity实例,则把栈中该实例以上的Activity实例全部移除,调用该实例的newInstance()方法重用该Activity,使该实例处於栈顶位置,否则就重新创建一个新的Activity实例。

4. SingleInstance模式

当该模式Activity实例在任务栈中创建后,只要该实例还在任务栈中,即只要激活的是该类型的Activity,都会通过调用实例的 newInstance()方法重用该Activity,此时使用的都是同一个Activity实例,它都会处于任务栈的栈顶。此模式一般用于加载较慢 的,比较耗性能且不需要每次都重新创建的Activity。

时间: 2024-10-11 00:53:35

Android四大套件Activity的相关文章

Android四大组件--Activity详解

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

Android四大组件——Activity

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

Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)

转载于:http://blog.csdn.net/byxdaz/article/details/9708491 http://blog.csdn.net/q876266464/article/details/19641251 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,Broadcast Receiver广播接收器. 一.了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以

Android 四大组件------Activity

一.定义软件打开的主activity 当用户点开软件时,系统会默认调用app中声明为"launch"(或者"main")的activity中的onCreate()方法.我们一般在AndroidManifest.xml中定义主activity. <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-fil

Android四大套件ContentProvider

简单叙述ContentProvider是如何实现数据共享的. 一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数据库中表的方式将数据暴露.Content providers存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法. 要想使应用程序的数据公开化,可通过2种方法:创建一个属于你自己的Contentprovider或者将你的数据添加到一个已经存在的Content  p

Android四大套件Service

以下是一个用XMind编写的Service概述 Service组件开发 第一步:继承Service类  public class SMSService extends Service {} 第二步:在AndroidManifest.xml文件中的<application>节点里对服务进行配置:<service android:name=".SMSService" /> 第三步:启动服务 方法一:context.startService():调用者与服务之间没有关

Android四大套件BroadCastReceiver

概述:BroadcastReceiver用于接收并处理广播通知(broadcastannouncements). 多数的广播是系统发起的,如地域变换.电量不足.来电来信等.程序也可以播放一个广播.程序可以有任意数量的 broadcast receivers来 响应它觉得重要的通知.broadcast receiver可以通过多种方式通知用户:启动activity.使用 NotificationManager.开启背景灯.振动设备.播放声音等,最典型的是在状态栏显示一个图标,这样用户就可以点它打开

Android成长日记-Activity

① Activity是一个应用程序组件,提供用户与程序交互的界面 ② Android四大组件 ---Activity ---Service ---BroadcastReceiver ---Content Provider ③ Android如何创建使用 继承Android的Activity类 重写方法 设置显示布局 在AndroidManifest文件中注册Activity ④ Activity的生命周期

android四大组件之广播接收器BroadcastReceiver

Android有一个非常重要的特性,就是广播.也可以将广播看做是通信机制.  Android四大组件: Activity, service, broadcastReceiver 和contentProvider, 只有Activity和service有完整的生命周期, 其他 broadcastReceiver 和contentProvider 都没有.  broadcastReceiver 本质上是一个监听器, 负责监听系统应用发出的广播(BroadCast). broadcastReceive