Android学习之路(四)之 隐式Intent的使用

来源:互联网 发布:淘宝客云建站怎么关了 编辑:程序博客网 时间:2024/06/13 22:55

隐式Intent的使用

在上篇文章中写了关于显式Intent的使用,这次,写一下关于隐式Intent的使用。

那么什么是隐式Intent?

定义:隐式Intent是没有明确目标组件名称的Intent。

那么隐式Intent有什么作用呢?

在显示Intent中,主要的是用于程序本身的Activity、Service、Broadcaster之间的通讯。而隐式Intent主要用于程序与其他不同应用程序之间的通讯。

下面我来举一个例子:

我们知道,很多手机游戏在玩的时候都会有分享这个功能,点击分享之后,就会出现,比如说发送到QQ,什么什么微博的。这其实就是用到了隐式Intent的功能。

这次我写了一个小程序,是这样的,在当前程序中的主Activity中存在一个按钮,点击该按钮后触发隐式Intent事件,然后呢?当前程序中还有另一个Activity,在这个Activity中只有一个TextView,在另一个程序中,也有一个Activity,同样里面是一个TextView。那么,当我点击之后,就会出现类似手游中点击分享之后出现的情况。下面看一下截图:

这里安卓学习之路_3和安卓学习之路_4是两个不同的应用程序,当前程序名字叫做安卓学习之路_4,那么点击第一个的时候,就会出现如下情况:

如上图所示,出现了在这个应用程序中的Activity中显示的文字。那么点击另一个的时候就会出现如下情况:

如上图所示,点击第二个就会出现本程序中的Activity。

那么如何实现这样的功能呢?

看一下这个代码:

public void onClick(View v) {Intent intent = new Intent();intent.setAction("com.android_4.Activity");//intent.addCategory("android.intent.category.DEFAULT");intent.addCategory(Intent.CATEGORY_DEFAULT);startActivity(intent);}

这是该程序中按钮的点击事件。里面是什么先不讲,先看下面的:

上面写到,分别会跳转到不同程序中的Activity上,在Activity类中就不多说了。主要看两个程序中的AndroidManifest.xml,那么我们要能跳转到这两个Activity中,那么肯定要在这个xml文件中配置一下Activity,我们来看一下代码:

<activity android:name="com.example.android_3.Activity03">            <intent-filter >                <action android:name="com.android.Activity"/>                                <category android:name="android.intent.category.DEFAULT"/>            </intent-filter>        </activity>

这是在安卓学习之路_3中的xml配置。

<activity android:name="com.example.android_4.Activity01">            <intent-filter>                <action android:name="com.android.Activity"/>                                <category android:name="android.intent.category.DEFAULT"/>            </intent-filter>        </activity>

这是在安卓学习之路_4中的xml配置。

可以看到,这里面的action中的android:name是一摸一样的,并且也和上面的鼠标点击时间中的setAction的参数是一样的,现在来说一下上面setAction,这个方法,是通过参数来找到相同名字的activity。android.intent.category.DEFAULT这个参数是进行隐式Intent的必要。

intent.addCategory(Intent.CATEGORY_DEFAULT);

这一段代码就是设置一下intent的属性,其中Intent.CATEGORY_DEFAULT就是上面android.intent.category.DEFAULT这个,两者是等价的。其实这一段代码是可加可不加的,因为Intent的默认属性就是这个。

做完上述操作之后,就能实现类似于手游中分享功能了。虽然粗燥了点,但是基本功能都差不多。

End~




0 0
原创粉丝点击