
和你一起终身学习,这里是程序员Android
本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
一、Intent 简介
二、Intent 主要用途
三、Intent 分类
四、隐式Intent 接收过滤标签
五、PendingIntent 介绍
六、Intent的七大属性
七、使用ADB调试 Intent
一、Intent 简介
Intent 是一个消息传递对象,主要用于组件之间的通讯,例如:启动Activity、启动Service、传递Broadcast等。
Intent 主要功能流程图如下:
二、 Intent 主要用途
1. 启动Activity
startActivity()
无返回值,直接启动ActivitystartActivityForResult()
有返回值,返回值在onActivityResult() 回调
2. 启动Service
startService()
一次性操作bindService()
绑定组件,随组件生命周期结束而结束
3. 发送Broadcast
sendBroadcast()
普通无序广播sendOrderedBroadcast()
有序广播sendStickyBroadcast()
持续黏性广播
三、 Intent 分类
1.显示 Intent
按名称(完全限定类名)指定要启动的组件。
例如:
Intent intentActivity = new Intent(MainActivity.this,
ActivityMethods.class);
startActivity(intentActivity);
2.隐式 Intent
不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它
例如:
/**
* 发送短信
* **/
public static void SendMms(Context context, String mmsString) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, mmsString);
sendIntent.setType("text/plain");
// sendIntent.setData(Uri.parse("smsto:"));
// This ensures only SMS apps respond
// 修改 Intnent 选择器Tittle
String title = context.getResources().getString(R.string.hello_world);
Intent chooser = Intent.createChooser(sendIntent, title);
// 验证是否有Activity 接收
if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(chooser);
}
}
四、 隐式Intent 接收过滤标签
应用可以接收哪些隐式Intent,请在清单文件中使用 <intent-filter>元素为每个应用组件声明一个或多个 Intent过滤器。每个Intent 过滤器均根据 Intent的操作、数据和类别指定自身接受的Intent类型。 仅当隐式Intent 可以通过Intent过滤器之一传递时,系统才会将该 Intent传递给应用组件。
1. <action>
在 name属性中,声明接受的 Intent操作。该值必须是操作的文本字符串值,而不是类常量。
例如:java 代码中启动的Intent的Action
Intent sendIntent = new Intent("String_action");
Androidmanfest.xml 中过滤标签如下:
2.<data>
使用一个或多个指定数据 URI 各个方面(scheme、host、port、path等)和 MIME 类型的属性,声明接受的数据类型。
3.<category>
在 name 属性中,声明接受的Intent 类别。该值必须是操作的文本字符串值,而不是类常量。
例如:
4. 禁止其他应用通过Intent 掉起自己组件
android:exported="false"
5. 应用主要入口点Action
<action android:name="android.intent.action.MAIN" />
6. Launcher 图标入口Action
以下两个元素必须配对使用,Activity才会显示在应用启动器中。

最低0.47元/天 解锁文章
4486

被折叠的 条评论
为什么被折叠?



