Uri详解之二——通过自定义Uri外部启动APP与Notification启动

前言:马上快要毕业一年了,还有三个月,要在毕业一年的时候把android基础看完,把android pro4认真的过一遍,在下一年中仔细看看JAVA基础、高级应用及内核的东西。预算中最后的一年,努力吧。

 

相关博客:
1、《Uri详解之——Uri结构与代码提取》
2、《Uri详解之二——通过自定义Uri外部启动APP与Notification启动》

 

一、自定义Uri与外部启动

1、概述

上篇我们讲了Uri的结构,在这篇中,我们将看看如何利用自定义的URI来启动我的的应用。 有时,我们要通过外部Uri链接来启动我们的应用,主要是通过Uri隐式Intent匹配的方式:

 

Uri uri = Uri.parse("qijian://test.uri.activity?action=1");
Intent intent = new Intent("android.qijian.schemeurl.activity");
intent.setData(uri);
startActivity(intent);

这里通过隐式Intent匹配来启动应用,在这里我们自定义了一个Uri结构:qijian://test.uri.activity?action=1
我们的应用在隐式匹配Intent时,使用的语法为:

<activity
    android:name=".SecondActivity"
    android:label="@string/title_activity_second">
    <intent-filter>
        <action android:name="android.qijian.schemeurl.activity" />
        <category android:name="android.intent.category.DEFAULT" />
        <data
            android:scheme="qijian"
            android:host="test.uri.activity" />
    </intent-filter>
</activity>

我们这里在匹配Intent时,使用指定scheme和host来精确匹配过来的Uri,以防止同名scheme就能启动我们的activity,即本来可能要启人家应用,确我们也横插一脚,用户体验很不好,一定要做到精确匹配,以防大家URI一样出现多个应用让用户选择的情况。
这样,第三方就能通过这个Uri来匿名启动我们的Activity了。

2、实例

 

(1)、新建用于外部启动的Activity
首先,我们先建一个应用,命名为:SchemeURL,在这个应用中我们新建一个Activity命名为:secondActivity,其XML代码如下:
(这个Activity是为了在外部启动,为了标识这个Activity是这个应用的,把背景色改成了黄色,文字改上了“SchemeURL 的Activity”)

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffff00"
    tools:context="com.harvic.com.schemeurl.SecondActivity">

    
  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值