zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    20191003 尚硅谷Spring Cloud教学视频
    20190928 On Java8 第二十三章 注解
    C# 输出结果有System.Byte[]
    linux 命令
    用go run命令启动main package中的多个文件
    Docker使用入门
    Go实现mqtt服务
    MongoDB的Go语言驱动注意点
    Go实现发送解析GET与POST请求
    用Go实现RabbitMQ消息收发
  • 原文地址:https://www.cnblogs.com/deman/p/4465323.html
Copyright © 2011-2022 走看看