码迷,mamicode.com
首页 > 移动开发 > 详细

Android Day06四大组件之Activity多页面跳转和数据传递

时间:2015-07-27 08:17:30      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:android课程

1.什么是Activity

  官方文档是这么说的:An Activity is an application component that provides a screen     with which users can interact in order to do something, such as dial the phone,     take a photo, send an email, or view a map. Each activity is given a window in     which to draw its user interface. The window typically fills the screen, but may be     smaller than the screen and float on top of other windows.  

   大致意思是说:Activity是一个应用程序组件,给用户提供一个屏幕让用户可以与之交互做一些事

   情。

2.Activity的生命周期

  下面这张图是官方文档提供的Activity的生命周期的图:

  技术分享

  

  

   ·onCreate 方法    当Activity启动的是调用

    ·onDestroy方法    当Activity销毁的时候调用

    ·onStart 方法    当Activity可见的时候调用 

    ·onStop 方法     当Activity 不可见的时候调用 

    ·onResume 方法    当Activity上的按钮 获得焦点 可以被点击的时候调用 

    ·onPause 方法    当Activity 上的按钮 失去焦点 按钮不可以被点击的时候调用     

     ·onRestart 方法   当界面被重新加载的时候调用 注意这个方法


■手机按键对应的Activity生命周期的回调方法

    如果点击BACK键,会调用Activity的onPause()、onStop()、onDestroy()方法,Activity

  会注销掉。

    如果点击HOME键,会调用Activity的onPause()、onStop()方法,但不会执行onDestroy()   方法,程序会运行在后台。如果应用程序没有被系统杀死,那么再点击应用程序图标会调用Activity的onRestart()、onStart()、OnResume()方法。

■特殊的回调方法组合

  如果打开第一个Activity之后,不关闭它,开启另外一个Activity(非透明的),会调用第一个Activity的onPause()、onStop()方法。

    如果打开第一个Activity之后,不关闭它,开启另外一个Activity(透明的),会调用第一个

  Activity的onPause()方法,而不会去调用onStop()方法,因为第一个Activity还是可见的。如果关

  闭透明的Activity,第一个Activity只会回调onResume()方法。

  

3.Activity的清单配置

  如果想让Activity成为应用程序的入口,需要将activity的意图过滤器配置如下:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

   Android允许程序有多个activity作为应用程序的入口,只要activity配置了以上的意图过滤器,就会在手机桌面上创建多个应用程序图标,点击图标会进入对应的activity界面。


   如果activity节点没有设置自己的label和icon,会默认使用application节点的label和icon。


4.Activity的页面跳转及数据传递

  ■启动Activity传数据和取数据

    本Activity:传数据,通过Intent对象的setData()和putExtra()方法封装数据至Intent对象。

    被调用的的Activity:取数据,通过Activity类的getIntent()方法先得到开启这个Activity的

               Intent对象,也就是本Activity里传数据用到的Intent对象,然后通过

               Intent对象的getXxxExtra()方法得到数据。

     

   ■启动Activity的2种方式

      第一种:不需要被启动的Activity返回数据

                startActivity(intent);

      第二种:需要被启动的Activity返回数据      

                startActivityForResult(intent, int类型的请求码);

    对于第二种Activity的启动方式,需要思考的两个问题?

     1)被调用的Activity怎么返回数据?

        首先,调用者Activity启动被调用的Activity的方式是

                    startActivityForResult(intent, int类型的请求码);

         其次,在被调用的Activity里面,创建Intent对象,将要返回的数据封装进Intent对

      象,调用Activity类的setResult(int resultCode, Intent data)方法返回Intent对象。

       如:  

            //将数据返回
		Intent intent = new Intent();
		intent.putExtra("phone", phone);
		setResult(10, intent);

    2)调用者Activity怎么获取被调用的Activity所返回的数据?   

本文出自 “行意天下” 博客,请务必保留此出处http://4259297.blog.51cto.com/4249297/1678564

Android Day06四大组件之Activity多页面跳转和数据传递

标签:android课程

原文地址:http://4259297.blog.51cto.com/4249297/1678564

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!