Android学习之路(四)之 隐式Intent的使用
2015-04-29 21:12
302 查看
隐式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~
相关文章推荐
- 【安卓开发-3】Activity的四种启动模式、Intent的显式和隐式使用方式
- 安卓使用隐式Intent(intent-filter)从其他Activity返回MainActivity时,App停止运行,及使用intent步骤简介
- 使用隐式的Intent启动activity
- Android学习笔记 ---- 隐式Intent使用--打开Android默认浏览器
- android学习记录(五)显式Intent与隐式Intent的功能与使用方法解析。
- 【Android】Android中Intent的显式使用和隐式使用
- Android 5.0 禁止使用隐式Intent来启动Service.异常:service intent must be explicit
- (三)使用Intent在活动中穿梭:显式和隐式Intent
- 显式intent和隐式intent的使用
- Intent详解(四):使用隐式Intent
- Android中显示和隐式Intent的使用
- 使用intent在活动之间穿梭——使用隐式Intent
- 安卓四大组件之一#3-使用Intent的隐式意图访问系统app
- 使用Intent Filter来响应隐式Intent
- 如何使用隐式 Intent
- 使用包含自定义动作的隐式Intent
- Android Studio Intent使用(显式、隐式)
- Android使用Intent Filter来响应隐式Intent
- Android 使用Intent隐式传递启动Activity(访问网址,打电话等)
- android5.0之后不允许使用隐式Intent启动Service