`
longgangbai
  • 浏览: 7330486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Activity的生命周期和Activity间传递数据

阅读更多

Activity生命周期:

使用Bundle 在Activity 间传递数据1:
1.1从源Activity 中传递数据

Intent openWelcomeActivityIntent=new Intent();
Bundle myBundelForName=new Bundle();
myBundelForName.putString("Key_Name",inName.getText().toString());
myBundelForName.putString("Key_Age",inAge.getText().toString());
openWelcomeActivityIntent.putExtras(myBundelForName);
openWelcomeActivityIntent.setClass(AndroidBundel.this, Welcome.class);
startActivity(openWelcomeActivityIntent);

 

1.2目标Activity 中获取数据

//从Intent 中获取数据
Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
myTextView_showName.setText("欢迎您进入:"+name);

使用Bundle 在Activity 间传递数据2:
2.1从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity 中

//从Intent 中获取数据

Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
myTextView_showName.setText("欢迎您进入:"+name);
private Intent toNextIntent;//Intent 成员声明
toNextIntent=new Intent();//Intent 定义
toNextIntent.setClass(TwoActivityME3.this, SecondActivity3.class);
//设定开启的下一个Activity
startActivityForResult(toNextIntent, REQUEST_ASK););

2.2开启Intent 时候,把请求码同时传递在源请求Activity 中等待Intent 返回应答结果,通过重载onActivityResult()方法

@Override

protected void onActivityResult(int requestCode,int resultCode,Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode==REQUEST_ASK){
    if(resultCode==RESULT_CANCELED){
      setTitle("Cancel****");
    }else if(resultCode==RESULT_OK){
      showBundle=data.getExtras();//从返回的Intent中获得Bundle
      Name=showBundle.getString("myName");//从bundle中获得相应数据
       text.setText("the name get from the second layout:\n"+Name);
     }
    }
}

☻ 第一个参数是你开启请求Intent时的对应请求码,可以自己定义。
☻ 第二个参数是目标Activity返回的验证结果码
☻ 第三个参数是目标Activity返回的Intent
2.3目标Activity 中发送请求结果代码,连同源Activity 请求的数据一同绑定到Bundle
中通过Intent 传回源请求Activity 中

  1. backIntent=new Intent();   
  2. stringBundle=new Bundle();   
  3. stringBundle.putString("myName", Name);   
  4. backIntent.putExtras(stringBundle);   
  5. setResult(RESULT_OK, backIntent);//返回Activity结果码   
  6. finish();  


 

方法名称
描述
Killable?(能否被杀掉)
下一个调用的方法
当这个Activity第一次被创建的时候,调用此方法。这个方法通常用于:1、为Activity设置所要使用的布局文件2、为按钮绑定监听器等静态的设置操作。
No
当Activity处于可见状态时,调用此方法。
No
开始与用户进行交互时(能够获得用户焦点,可以进行点击等操作的时候),调用此方法。
No
之前被停止,现在重新启动,调用此方法。
No
当系统启动另外一个新的Activity时,先调用前一个Activity的此方法。这个方法通常用于:保存现有的Activity中的数据、停止动画等,这个实现方法必须非常快。
Yes
当Activity处于不可见状态时(现有的Activity被新的Activity完全覆盖时),调用此方法。
注:如果只是在现有的Activity中弹出一个对话框,没有完全覆盖现有的Activity的话是不会调用此方法的。
Yes
销毁Activity。
有两种情况会对Activity进行销毁:1、在系统不足以支撑现有的应用程序的情况下,系统会关闭(销毁)掉一部分系统认为不必要的Activity,以节省空间。2、程序中手动调用finish()方法进行销毁。
Yes
nothings
关于能否被杀掉:当一个Activity调用了onPause()、onStop()或onDestroy()方法(Killable?为Yes的方法),而系统在一定情况下(如系统不足以支撑现有的应用程序的情况下),会先关闭(销毁)掉这部分Activity。

实例:创建一个Android应用程序,写两个Activity,都实现以上7个方法,通过从第一个Activity跳转到第二个Activity,然后点击模拟器右侧的返回按钮,根据应用程序中输出的内容观察Activity的生命周期。

在这里顺便大致记录一下开发步骤:

1、创建一个Android应用程序

2、写两个ActivityFirstActivitySecondActivity),都实现以上7个方法,并都输出一句语句。

3、因为要从FirstActivity跳转到SecondActivity,所以要在FirstActivity的布局文件中添加一个按钮,并且要写一个监听器,为按钮绑定OnclickListener事件。

4、不要忘记将新创建的Activity添加到AndroidManifest.xml文件中。

5、然后运行程序观察。

(这里只大致讲了一下开发流程没有将具体的代码贴出来,现在将程序打包了,有需要的可在附件中下载)

运行程序:

1、当程序刚开始运行FirstActivity的时候,控制台输出以下内容:

从控制台输出内容来看,程序先执行了FirstActivityonCreate()方法,然后再依次执行了onStart()onResume()方法。

2、当点击FristActivity上的按钮时,控制台输出以下内容:

从控制台输出内容来看,程序先调用了FirstActivityonPause()方法,然后再一次调用了SecondActivityonCreate()onStart()onResume()方法,最后调用了FirstActivityonStop()方法。

3、点击模拟器右侧的返回按钮,控制台输出以下内容:

从控制台输出内容来看,程序先调用了SecondActivityonPause()方法,然后再依次调用了

FirstActivityonRestart()onStart()onResume()方法,再调用了SecondActivityonStop()onDestroy()方法。

注意:当点击返回的时候,这里调用的不是FirstActivityonCreate()方法而是onRestart()方法,因为在之前FirstActivity已经被创建过了并且没有销毁,只要当FirstActivity销毁了再调用FirstActivit y的时候才会调用onCreate()方法。

分享到:
评论

相关推荐

    Android之Activity的生命周期和Activity间的跳转和数据传递)

    ### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...

    Activity生命周期与启动模式

    **Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...

    android activity 生命周期

    1. **初始状态**:当Activity首次被创建时,会经历`onCreate()`方法,这是Activity生命周期的第一个回调,用于进行初始化工作,如设置布局、数据绑定等。 2. **启动状态**:`onStart()`方法紧接着`onCreate()`,...

    android activity 生命周期的深入学习

    本篇文章将详细探讨Activity生命周期的各个阶段及其转换,以及如何在这些阶段中适当地管理资源。 一、Activity生命周期的基本阶段 1. 创建(Creation): - **onCreate()**:Activity的起点,系统在此方法中初始...

    android生命周期管理:重置一个Activity

    那么,如何管理 Activity 的生命周期,避免数据丢失和恢复状态信息呢? Activity 生命周期 Activity 生命周期包括以下几个状态: 1. onCreate():Activity 创建时调用 2. onStart():Activity 启动时调用 3. ...

    android_Activity生命周期

    Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...

    Android PopupWindow与Activity之间的数据传递.zip

    当PopupWindow需要向Activity传递数据时,只需调用已实现的接口方法即可。这样做的好处是保持了PopupWindow和Activity之间的解耦。 3. **静态变量**:创建全局静态变量,可以方便地在PopupWindow和Activity之间共享...

    Activity生命周期及Intent传值

    理解Activity的生命周期和Intent的传值机制对于Android开发者来说至关重要。 Activity的生命周期分为三个主要阶段:启动(Start)、运行(Running)和销毁(Destroy)。在启动过程中,Activity会经历onCreate()、...

    Android的Activity周期 Android的Activity周期 Android的Activity周期

    ### Android的Activity生命周期详解 #### 一、Activity生命周期概述 在Android开发中,理解Activity的生命周期至关重要。Activity是Android四大组件之一,它负责为用户提供一个可视化的交互界面。每个Activity都有...

    Activity生命周期相关

    这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、数据绑定等。 2. **启动(Initialization)**:创建后,如果Activity可见但部分被遮挡,`onStart()`会被调用,使Activity变得可见。这个...

    MVP官方写法和Activity生命周期绑定

    **Activity生命周期与MVP的绑定**: 1. **生命周期回调**:在Activity的生命周期回调中,我们需要合理地管理Presenter。在onCreate()中初始化Presenter,在onStart()和onResume()中可以执行一些准备工作。在onPause...

    Android Activity学习笔记

    Activity生命周期是指Activity从创建到销毁的整个过程。生命周期可以分为三个阶段:创建、运行和销毁。 1. 创建阶段:包括onCreate、onStart、onResume三个方法。这三个方法都是系统自动调用的,用于初始化Activity...

    android 学习笔记7-页面跳转 Activity启动 生命周期 activity数据传递

    2、启动activity-显示启动和隐式启动: 3、隐式启动自己的activity 4、获取隐启动传递过来的data数据 5、显示启动传递数据 6、禁用掉横竖屏切换 7、开启activity获取返回值-startActivityForResult:

    android之activity的生命周期和launchMode、onActivityResult方法的作用

    在Android应用开发中,Activity是用户界面的基本单元,它的生命周期管理是开发者必须深入理解的关键概念。本篇文章将探讨Activity的生命周期、launchMode属性以及onActivityResult方法的使用。 首先,我们来详细...

    AndroidActivity生命周期(图文)![归纳].pdf

    这是Activity生命周期中的活动状态。 4. **onPause()**:当Activity失去焦点但仍然部分可见(例如,弹出一个透明或半透明的对话框)时调用。在这个阶段,你应该保存非持久性数据并停止耗时操作。 5. **onStop()**...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    在工作示例WorKDemo中,可能包含了展示这些概念的实际代码和步骤,你可以通过查看和运行这个示例来更直观地理解Activity间的通信和生命周期管理。通过深入理解和实践,你将能够更好地设计和优化你的Android应用。...

    Fragment与Activity使用Bundle传递数据

    4. **注意生命周期**:在使用Bundle传递数据时,需要注意Activity和Fragment的生命周期。当Activity或Fragment被销毁后,它们保存的Bundle数据可能会丢失。因此,对于跨Activity的数据传递,一般推荐使用Parcelable...

    Android Activity间共享数据

    - 生命周期管理:了解Activity的生命周期,合理处理数据在不同状态下的保存和恢复。 最后,通过实践12ActivityShareData这个项目,你可以更好地理解和掌握这些方法。该项目可能包含了各种数据传递方式的实例,有助...

    android Activity 详述 demo

    一、Activity生命周期 Activity的生命周期是开发者必须理解的关键概念,因为它决定了何时以及如何执行代码。主要的生命周期回调方法包括: 1. `onCreate()`: 当Activity首次创建时调用,用于初始化界面和基本设置...

    android intent 的生命周期讲解和历程

    接下来,我们关注Intent在Activity生命周期中的作用。当一个Intent被用来启动一个新的Activity时,它会参与到Activity的创建和恢复过程中。以下是Activity的生命周期关键点: 1. **onCreate()**: 当Activity首次...

Global site tag (gtag.js) - Google Analytics