关于Activity的生命周期

onCreate(Bundle savedInstanceState):可以进行一些初始化的工作在activity第一次被创建的时候调用。这里是你做所有初始化设置的地方──创建视图、绑定数据至列表等

onStart():Activity显示在前台,但还不可与用户交互

onRestart():在activity停止后,在再次启动之前被调用

onResume():取得控制权,可以对此Activity进行操作此时activity位于堆栈顶部,并接受用户输入

onPause():暂停,可见,但不可操作,此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费CPU的动作等

onStop():当activity不再为用户可见时调用此方法

onDestroy():在activity销毁时调用

Android的Activity是堆栈结构,多个Activity之间的切换顺序:

MainActivity跳转到Another

 08-25 05:02:47.783: INFO/System.out(339): MainActivity------->onPause()
08-25 05:02:47.843: INFO/System.out(339): Another------->onCreate()
08-25 05:02:47.853: INFO/System.out(339): Another------->onStart()
08-25 05:02:47.853: INFO/System.out(339): Another------->onResume()
08-25 05:02:48.253: INFO/System.out(339): MainActivity------->onStop()

按Back键返回:

 08-25 05:03:48.133: INFO/System.out(339): Another------->onPause()
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onRestart()
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onStart()
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onResume()
08-25 05:03:48.483: INFO/System.out(339): Another------->onStop()
08-25 05:03:48.483: INFO/System.out(339): Another------->onDestroy()

第二个Activity使用了finish()方法,返回:

 - ::48.053: INFO/System.out(): Another------->onPause()
- ::48.103: INFO/System.out(): MainActivity------->onRestart()
- ::48.103: INFO/System.out(): MainActivity------->onStart()
- ::48.103: INFO/System.out(): MainActivity------->onResume()
- ::48.423: INFO/System.out(): Another------->onStop()
- ::48.453: INFO/System.out(): Another------->onDestroy()

MainActivity需要在Another执行finished()方法获取传入的值:

Another中:

Intent it = new Intent();
Bundle bundle = new Bundle();
bundle.putString("result", resultString);
bundle.putParcelable("bitmap", barcode);
it.putExtras(bundle);
this.setResult(RESULT_OK, resultIntent);

setResult方法:

public final void setResult(int resultCode, Intent data) {
synchronized (this) {
mResultCode = resultCode;
mResultData = data;
}
}

MainActivity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SCANNIN_GREQUEST_CODE:
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
//显示扫描到的内容
mTextView.setText(bundle.getString("result"));
//显示
mImageView.setImageBitmap((Bitmap) data.getParcelableExtra("bitmap"));
}
break;
}
}

Activity中setResult(int resultCode, Intent data)与onActivityResult(int requestCode, int resultCode, Intent data)方法的调用的更多相关文章

  1. Android Widget 小部件(三) 在Activity中加入Widget

    package com.stone.ui; import static android.util.Log.d; import android.app.Activity; import android. ...

  2. android开发之在activity中控制另一个activity的UI更新

    转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivit ...

  3. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler

    来自:http://blog.csdn.net/jason0539/article/details/18055259 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新, ...

  4. Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...

  5. Activity中的startActivityResult,setResult,finish,onActivityResult的关系

    一:首先图示: 二:代码: 1:方法selectName public void selectName(View view){ Intent intent = new Intent(this,Name ...

  6. Activity中使用Intent实现页面跳转与参数的传递(转)

    新建一个FirstAvtivity.java package com.zhuguangwei; import android.app.Activity; import android.content. ...

  7. Android开发教程 - 使用Data Binding(三)在Activity中的使用

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  8. 【Android 复习】:从Activity中返回数据

    在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递类似,也可以采用上一讲中的四种方式来传递数据,但是一般建议采用Intent对象的方式的来返 ...

  9. 在多个Activity中回传值(startActivityForResult())

    业务逻辑: MainActivity打开A,A打开B,B把值传回MainActivity.适用在多个Activity中回传值. 实例:微信中选择国家-->省份-->城市的实现 实现方式分析 ...

随机推荐

  1. bzoj2127: happiness

    Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友 ...

  2. How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo

    How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo An early insight into the importa ...

  3. python PIL except: IOError: decoder jpeg not available

    今天在Python运行环境的服务器弄一个有关图像处理的程序时报这样的错: 1 NameError: global name 'Image' is not defined import Image 了下 ...

  4. Maximum Submatrix 2

    Codeforces Round #221 (Div. 1) B:http://codeforces.com/problemset/problem/375/B 题意:给你一个n*m的0,1矩阵,你可以 ...

  5. 想做Android Wear开发?你得先搞明白这四件事

    手环和手表的腕上穿戴之争,随着Apple Watch发布和Android Wear不断完善而告一段落.尽管续航上略有缺陷,但手表以其类似手机可扩展的生态环境赢得了众多巨头的支持. Google曾透露, ...

  6. 暴力求解——hdu 1799 循环多少次?

    Description   我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算,如 ...

  7. bzoj 1055 [HAOI2008]玩具取名(区间DP)

    1055: [HAOI2008]玩具取名 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1258  Solved: 729[Submit][Statu ...

  8. Apache HBase 2015年发展回顾与未来展望

    编者按:高可用架构推出 2015 年度回顾系列文章,分享在架构领域具有典型意义的年度案例,本文由张虔熙分享.转载请注明来自高可用架构公众号「ArchNotes」.   张虔熙,Hulu 网,专注于分布 ...

  9. CodeForces 27D - Ring Road 2 构图2-sat..并输出选择方案

        题意             n个数1~n按顺序围成一个圈...现在在某些两点间加边..边可以加在圈内或者圈外..问是否会发生冲突?如果不发生冲突..输每一条边是放圈内还是圈外.     题解 ...

  10. spring mvc mybatis

    Spring与Mybatis整合需要引入一个mybatis-spring.jar包,该整合包有Mybatis提供,可以从Mybatis官网下载. 该jar包提供了几个API: 1.SqlSession ...