看到一篇好文章,待加工 http://hi.baidu.com/jieme1989/item/6e5f41d3f65be848ddf9beb9

第三篇 http://blog.csdn.net/luoshengyang/article/details/6714543

以前写ios程序时,想调用别的第三方程序,一般都是用到 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appString]];  调用后,系统就停在了启动后的第三方程序中,想回到以前的程序只能手动启动以前的程序。

后来发现Android中不是这样的,程序可以把第三方的程序的一个模块通过intent单独调用,按back钮就能回到之前的程序,用起来就好像一个程序。

如果想用好这个功能,就需要了解Intent,Task,Activity中重要参数的作用。

以上3个帖子就对这方面的知识进行了解释。


Intent 到底是什么呢,其实,最好的了解方式就是官方文档!请参阅google 的Intents and Intent Filters 说明,地址http://developer.android.com/guide/components/intents-filters.html

Intent的使用,使同一个程序中的各个Activity不相互依赖。正是因为它们之间没有紧耦合,我们才能顺利的把一个程序的activity“嵌入”到另一个程序中去。以前在ios写程序时,都先吧controller实例化,再把对象附上各式各样的自定义属性值,再present出来。Android中的Activity完全不走这个路线,启动一个Activity不能通过先实例话对象,而是通过使用Intent,这样,强制使你的代码松耦合。就感觉上说,对于一个小程序,ios的做法更加方便易懂,写起来很容易。但是就代码的规范度和重用性来说,android的做法更横一筹。

下面根据官方文档简单总结一下:

创建一个Intent有2中基本方法,一个是创建一个explicit Intent,你需要传入具体Component name(android中把activity,server,broadcast等叫做component),比如new Intent(context,xxxx.class));另一种是创建一个implicit Intent,利用intent的action值,比如new Intent("com.xx.zzzzzzzzz");

Intent的主要属性有,

Component name:用于指定启动对应的component,参见上文

Action:用于启动对应的component,参见上文

Data: 用于指定component可以处理的数据url和mimeType,和 intent-filter 中 data 标签配合使用

Category:用于指定component所属类别,和intent-filter 中 category 标签配合使用

Extras:用于向intent中添加信息

Flags:用于指定一些系统设置,比如FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_SINGLE_TOP 等等。


提到Android就要一定要看看Task这个有意思的概念,这个Task与线程无关,在android是个stack,请仔细阅读官方 说明 Tasks and Back Stack ,地址 http://developer.android.com/guide/components/tasks-and-back-stack.html

以下摘抄一句Task技能带来的,ios不具备的机能说明  Even though the activities may be from different applications, Android maintains this seamless user experience by keeping both activities in the same task

这个stack的概念,让我想起了ios中的UINavigationController,这个可以容纳其他controller的“容器”,也应该有一个stack。不知道ios中除了nav Controller 外哪里还使用了stack,presentViewController 这个最基本的方法会吗?不断地present会像stack中不断地添加controller吗?present 一个controller后, 上一个controller的view会怎么样?被移除了还是放在了后面?Android 开始一个新Activity的话,上个Activity的view肯定是被移除了的。等回去研究下,再继续总结。

关于Intent ,Task, Activity的理解的更多相关文章

  1. Intent实现Activity组件之间的通信

    今天讲解的是使用Intent实现Activity组件之间的通信. 一.         使用Intent显式启动Activity,Activity1àActivity2 1.             ...

  2. Android - 通过Intent启动Activity

    通过Intent启动Activity 本文地址: http://blog.csdn.net/caroline_wendy 为了动态关联Activity界面,使用Intent启动.能够灵活绑定. 在In ...

  3. 【Android基础】利用Intent在Activity之间传递数据

    前言: 上一篇文章给大家聊了Intent的用法,如何用Intent启动Activity和隐式Intent,这一篇文章给大家聊聊如何利用Intent在Activity之间进行沟通.   从一个Activ ...

  4. Android(java)学习笔记73:Intent启动Activity

    1. Intent启动Activity案例 (1)首先是main.xml和other.xml文件如下: main.xml文件: <?xml version="1.0" enc ...

  5. Intent获取Activity返回值

    /* Intent获取Activity返回值* 三步:* 子Activity关闭后的返回值处理函数,requestCode是子Activity返回的请求码,与页面顶端的两个请求码相匹配,resultC ...

  6. 从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭

    2.3 使用 Intent 在 Activity 之间穿梭 在上一节中我们已经学会了如何创建一个 Activity 了.对于一个应用程序来说,肯定不可能只有一个 Activity.下面就来学习多个 A ...

  7. Android学习笔记三:用Intent串联activity

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7513399.html 一:Intent Intent可以理解为 意图. 我们可以通过创建intent实例来定义 ...

  8. Android之Intent和Activity

    Intent能够说是Android的灵魂,程序跳转和传递数据的时候基本上就是靠Intent了.Intent在Android应用中是相当重要的,理解Intent相应用编程非常有帮助.在Android的官 ...

  9. 用Intent实现activity的跳转

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

随机推荐

  1. JavaScript 中 的prototype和__proto__

    1.prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象.它是显示修改对象的原型的属性. 2.__proto__是一个对象拥有的内置属性(请注 ...

  2. android自定义控件(1)-点击实现开关按钮切换

    自定义控件的步骤.用到的主要方法:   1.首先需要定义一个类,继承自View:对于继承View的类,会需要实现至少一个构造方法:实际上这里一共有三个构造方法: public View (Contex ...

  3. linux shell 报错 Syntax error: Bad for loop variable

    在linux下写了一个简单的shell,循环10次. test.sh #!/bin/bash ## ##循环10次 ## ; i<; i++)); do echo Good Morning ,t ...

  4. poj3254 Corn Fields (状压DP)

    http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissio ...

  5. log4net--不可多得的开源日志记录组件

    log4net--不可多得的开源日志记录组件 1 前奏 一直在用log4net日志工具,却没时间写个日志给大家分享一下这个工具,趁最近比较空些,好好分享一下这个工具. 2 说明 Log4net介绍就不 ...

  6. 【转】CSS3动画帧数科学计算法

    本文来源于:财付通TID 原作者:bboy90 总结都浓缩在这个工具里了,想知道工具的地址或想窥探工具诞生的趣事请往下看 . —————————————————————–     华丽丽的开篇     ...

  7. css定位之z-index问题分析

    新手先去看看   CSS z-index 属性    CSS z-index 属性的使用方法和层级树的概念 ---------------------------------------------- ...

  8. oracle数据表创建分区与查询

    场景: 遇到1亿数据量的数据需要根据用户名做些数据统计分析,想直接做些聚合计算基本没可能,于是打算先根据日期按照年月创建分区,然后对各个分区分别进行统计,最后汇总结果. 有两种方法,分别是手工设置分区 ...

  9. SEO 百度后台主动推送链接

    实践步骤,先用爬虫程序将本网站的所有连接爬取出来,再用python文件处理程序把爬虫来的东东整理成一行一个链接的文本格式.再用postman接口测试工具,使用post方式,将所有的链接post过去,这 ...

  10. C++Socket编程总结 [转]

    使用socket写代码主要是要看自己的需求是什么. 如果通信时,内容很重要就要使TCP方式. 如果用户数太多,可能就要使用UDP方式了. 在TCP模式下,最简单的方式就是这样的,使阻塞方式: 服务端: ...