intent和intentfilter

intent 和intent Filters

startActivity()的机制

用到了IBinder ipc 用到了进程间通讯机制

activity有四种LaunchMode

当startActivity()的时候不知道启动的是不是和自己的activity在一个

进程中,所以要用 IPC 进程间通讯来调用

简单的用法

1

A.class中


1

2

3

Intent
intent = 
new Intent(A.this,
B.
class);

intent.putExtra("sundy.demo""你好");

startActivity(intent);

B.class中


1

2

3

Intent
intent = 
this.getIntent();

String value
= intent.getExtras().getString(
"key");

Toast.makeText(this,
value, 
1).show();

2

A.class中


1

2

3

4

Intent
intent = 
new Intent();

intent.putExtra("key""123");

intent.setAction("com.wang.cn");

startActivity(intent);

B。class中

.


1

2

3

Intent
intent = 
this.getIntent();

String value
= intent.getExtras().getString(
"key");

Toast.makeText(this,
value, 
1).show();

要在mainfest中设置B。clas的activity中的intent-filter的action中设置


1

2

3

4

5

6

7

<activity
android:name=
".B" >

            <intent-filter>

                <action
android:name=
"com.wang.cn" />

                <category
android:name=
"android.intent.category.DEFAULT" />

            </intent-filter>

        </activity>

必须写上 <category android:name="android.intent.category.DEFAULT" />这一句不然会报错。。

3. 简单的打电话 代码


1

2

3

4

5

Intent
intent = 
new Intent();

intent.setAction(Intent.ACTION_DIAL);

intent.setData(Uri.parse("tel:12345645555"));

startActivity(intent);

setAction和setData都是系統定義好 。這裡只說下用法

4.获取data中的值

A。class中


1

2

3

4

Intent
intent = 
new Intent();

intent.setAction("com.wang.cn");

intent.setData(Uri.parse("tel:12345645555"));

startActivity(intent);

B。class中


1

2

3

4

Intent
intent = 
this.getIntent();

String uri
= intent.getDataString();

Toast.makeText(this,
uri, 
1).show();

setAction和setData都是系統定義好 。這裡只說下用法


1

2

3

4

5

6

7

8

9

10

<activity
android:name=
".Rose" >

            <intent-filter>

                <action
android:name=
"com.wang.cn" />

                <category
android:name=
"android.intent.cat 
egory.DEFAULT"
 />

                <data
android:scheme=
"tel" >

                </data>

            </intent-filter>

        </activity>

5.startActivityForResult 方法

A。class中


1

2

3

Intent
intent = 
new Intent();

intent.setClass(A.this,B.class);

startActivityForResult(intent, 123);

在A。clas的activity中 导入系统的onActivityResult方法


1

2

3

4

5

6

7

8

9

@Override

    protected void onActivityResult(int requestCode, int resultCode,
Intent data) {

        //
TODO Auto-generated method stub

        super.onActivityResult(requestCode,
resultCode, data);

        if (resultCode
== 
321)
{

            String value
= data.getExtras().getString(
"name");

            Toast.makeText(this,
value, 
1).show();

        }

    }

B.class中


1

2

3

4

5

6

7

8

9

10

11

button.setOnClickListener(new OnClickListener()
{

            @Override

            public void onClick(View
arg0) {

                Intent
intent =
this.getIntent();

                intent.putExtra("name""111111111");

                setResult(321,
intent);

                finish();

            }

        });

当resultCode一样的时候 回传值成功。。

6.intent 传递 对象 类  等等

时间: 2024-11-05 12:06:28

intent和intentfilter的相关文章

android笔记--Intent和IntentFilter详解

Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势1, Intent为组件的启动提供了一致的编程模型. 无论想要启动的组件是Activity, Service, 还是BroadcastReceiver, 都可以使用Intent封装启动的意图.2, 在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的

Intent和IntentFilter详解

Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势1, Intent为组件的启动提供了一致的编程模型. 无论想要启动的组件是Activity, Service, 还是BroadcastReceiver, 都可以使用Intent封装启动的意图.2, 在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的

Android的Intent和IntentFilter应用说明一例

转自:http://www.blogjava.net/TiGERTiAN/archive/2010/02/03/311827.html 很多人对文档中的Intent和IntentFilter不理解是什么意思,我这里举例解释下.Intent字面意思就是目标,目的.通俗一点,需要达成某些目标,则需要提供一些动作,这些目标的分类,以及达成这些目标所需要的一些数据等等.Android中的Intent通过Action,Category和data等属性进行了相应的描述,我们想做某些事情(达成某些目标),就需

Android应用程序组件之间的通信Intent和IntentFilter

Android应用程序的基本组件,这些基本组建除了Content Provider之外,几乎全部都是依靠Intent对象来激活和通信的. 下面介绍Intent类,并通过例子来说明Intent一般用法 1.1 Intent类简介 Intent类的对象是组件间通信的载体,组件之间进行通信就是一个个Intent对象在不断地传递.Intent对象主要作用于运行在相同或不同应用程序的Activity,Service和Broadcast Receiver组件之间,对于这3种组件,其作用机制也不相同 一,对于

安卓 Intent 与/intent-filter的关系详解。

Intent可以分为两种:显式Intent和隐式Intent;显式Intent:通过组件名字字段指定目标组件;因为开发者通常不知道其它应用程序的组件名字,所以,显式Intent通常用于应用程序内部消息传递;例如:一个Activity启动从属的服务或启动一个同级别的Activity;隐式Intent:不指定目标组件的名字(组件名字字段是空);隐式Intent经常用于激活其它应用程序中的组件;Android系统传递一个显式Intent消息对象到一个指定目标组件名字的实例,Intent消息对象中只用组

Intent及IntentFilter详解

Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势 1, Intent为组件的启动提供了一致的编程模型. 无论想要启动的组件是Activity, Service, 还是BroadcastReceiver, 都可以使用Intent封装启动的意图. 2, 在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解

Intent以及IntentFilter详解

1. 前言 在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度.Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究. 2. Intent与组件 Intent促进了组件之间的交互,这对于开发者非常重要,而且它还能做为消息的载体,去指导组件做出相应的行为,也就是说Intent可以携带数据,传递给Activity/Service/BroadcastReceiver.

Intent和IntentFilter的理解

<activity android:name=".SecondActivity"> <intent-filter> <action android:name="hello1" /> <action android:name="hello2" /> <category android:name="android.intent.category.DEFAULT" /> &

[转]Intent和IntentFilter详解

Intent   Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互.因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦.在SDK中给出了I

android:android Intent and IntentFilter

文章来自:http://blog.csdn.net/intbird 如果说是将一个activity有其他应用打开,或者是在webView中调用我们自己的activity,那么最好就是使用intentfilter来过滤我们需要的activity; 说明什么是uri参数 Java Code: final Uri uri = Uri.parse("intbird://com.intbird.soft/testing/tested?name='Test'"); TextView textVie