android intent 5.1

1.intent 6 items

action, data(uri &type),Component name,Extras,flags

2.data---uri & type

不管使用什么参数,action,type或者其他,关键问题就是。

所有的new activity启动,最终都需要Component name.

所以,intent可以分析得到Component name,就可以使用。

    private void sendBroadcast(long eventId, long begin, long end, String title){
        Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
        builder.appendEncodedPath("events/" + eventId);
        Uri uri = builder.build();
        Intent i = new Intent(EVENT_DETAIL_ACTION);
        i.putExtra(EXTRA_EVENT_BEGIN_TIME, begin);
        i.putExtra(EXTRA_EVENT_END_TIME, end);
        i.putExtra(TITLE, title);
//        i.setDataAndType(uri, EXTRA_TYPE);
        i.setData(uri);
        if (i.resolveActivity(getPackageManager()) != null) {
            startActivity(i);
        }
    }

关于传递data的问题。一般情况下,uri和type只需要一个。

关键是,我们每个activtiy最好是指定处理的类型,当我们需要做隐示intent传递的时候。

        <activity android:name=".agenda.AgendaDetailActivity" >
            <intent-filter>
                <action android:name="com.xui.calendar.agenda_detail"></action>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/event"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/event"/>
            </intent-filter>
        </activity>

但是我们可能只想传奇Uri给activtiy使用,这个时候,使用content类型的uri可以保证具有唯一性。

因为每个uri对应数据库,而数据库是有类型的。content_item_type.

进而ams可以通过数据库的类型进行匹配。

所以可以只传递uri的情况。

如果想同时传递uri & type。setdataandtype。

时间: 2024-10-08 23:08:03

android intent 5.1的相关文章

android之android.intent.category.DEFAULT的用途和使用

转载(http://blog.csdn.net/jason0539/article/details/10049899) 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码: Intent intent= new Intent(this, B.class): Implicit Intent没有明确的指定要启动哪个Activity

Android Intent 意图作用

Intent分为两大类: (1)显性的(Explicit) (2)隐性的(Implicit) 对于隐性意图,在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的目的.(在模块间的组件启动) intent定位事件的目的地: (1)种类(category),比如我们常见的 LAUNCHER_CATEGORY 就是表示这是一类应用程序. (2)类型(type),在前面的例子中没用过,表示数据的类型,这是隐性Intent定位目

转android intent action 介绍大全

一些常用的Intent: Uri Action 功能 备注 geo:latitude,longitude Intent.ACTION_VIEW 打开地图应用程序并显示指定的经纬度   geo:0,0?q=street+address Intent.ACTION_VIEW 打开地图应用程序并显示指定的地址   http://web_address Intent.ACTION_VIEW 打开浏览器程序并显示指定的URL   https://web_address Intent.ACTION_VIEW

android细节之android.intent.category.DEFAULT的使用

我们知道,实现android的Activity之间相互跳转需要用到Intent, Intent又分为显式Intent和隐式Intent, 显式Intent很简单,比如我在FirstActivity中想跳转到SecondActivity,只需要直接声明就行了: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 而在使用隐式Intent实现Activity之间跳转的时候,并没有明确指定要打开哪个activity

android.intent.category.DEFAULT

我们需要什么时候加android.intent.category.DEFAULT呢? 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐式) intent什么是explicit(显示) intent. Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码:              Intent intent= new Intent(this, B.class) Implicit Intent没有明确的指定要启动哪个Activity ,而是通过

Android intent action大全

android.intent.action.ALL_APPSandroid.intent.action.ANSWERandroid.intent.action.ATTACH_DATAandroid.intent.action.BUG_REPORTandroid.intent.action.CALLandroid.intent.action.CALL_BUTTONandroid.intent.action.CHOOSERandroid.intent.action.CREATE_LIVE_FOLDE

android Intent的startActivityForResult()方法

startActivityForResult() 之前学习了利用Intent跳转页面的同时传值,但有的时候需要从跳转到的页面返回所需要的值(如修改了用户信息,需要返回修改的信息),通俗的意思就是A.Activity跳转到B.Activity,在A.Activity中要自动获取到B.Activity返回的数据. 1.介绍几个主要的方法: 1 MainActivity.this.startActivityForResult(intent1, 1); 第一个参数intent1就不介绍了,第二个参数的值

Android intent 传值不更新的原因和解决办法

当 Activity 的启动模式是 singleTask 或者 singleInstance 的时候.如果使用了 intent 传值,则可能出现 intent 的值无法更新的问题.也就是说每次 intent 接收到的值都是第一次接到的值.因为 intent 没有被更新.想要更新需要做两件事情. 1. 发送方 Activity,加上一句话 ? 1 PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,Pen

Android Intent简介

Intent对象主要用来在Android程序的Activity,Service和BroadcastReceiver这3大组件之间传输数据, 而针对这3大组件,有独立的Intent传输机制,分别如下:1.Activity:通过将一个Intent对象传递给Context.startActivity()或Activity.startActivityForResult(), 启动一个活动或者使用一个已经存在的活动去做新的事情.2.Service:通过将一个Intent对象传递给Content.start

[Android] Intent详解

[转]http://www.cnblogs.com/engine1984/p/4146621.html [正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互.Intent这