Intent用法
来源:互联网 发布:淘宝手机都假的吗 编辑:程序博客网 时间:2024/05/17 07:16
显式启动
Intent构造器
(指明启动的组件);
隐式启动
(不会指明启动的组件)
显式启动的几种方式
1查看Intent构造
安卓推荐的构造方式
public Intent(
Context packageContext,--上下文对象
Class<?> cls--目标组件.class
) {
mComponent =
new ComponentName(packageContext, cls);
}
其他类别创建显式意图的方式
public Intent setComponent(
ComponentName component) {
mComponent = component;
return this;
}
public Intent setClassName(
Context packageContext,上下文对象
String className:目标组件完整路径名
) {
mComponent = new ComponentName(packageContext, className);
return this;
}
public Intent setClassName(
String packageName,起始组件包名
String className->目标组件完整路径名
) {
mComponent = new ComponentName(packageName, className);
return this;
public Intent setClass
(Context packageContext,上下文对象
Class<?> cls目标组件.class
) {
mComponent = new ComponentName(packageContext, cls);
return this;
}
}
----
测试显示的启动
1创建目标界面(activity)
绑定一个布局
注意activity要主配置文件进行注册
2当前界面添加按钮-->初始化设置监听器
android:onClick="按钮点击事件的名称"
要求acitivity添加对应事件
对单击事件做出处理
activity层必须添加方法
语法
public void 方法名(View v){
处理单击事件
}
3按钮单击事件进行测试
----------显式测试内容
1intent(上下文对象,目标组件.class);-->安卓推荐
2setClass方式-->安卓不推荐
intent.setClass(上下文对象, 目标组件.class)
测试步骤
1>创建一个无参的intent对象
2>用setClass()方法来显示跳转目标
startByClass()-->测试
3setClassName 方式-->不推荐
测试步骤
1>创建一个无参构造
2>调用setClassName 进行目标组件的绑定
startByClassName1()
setClassName(
packageContext,-->上下文对象
className-->目标组件完整路径名(参照主配置文件)
<activity name="这里就是">
)
intent.setClassName(
packageName,当前界面所在包名
className,目标组件完整路径名
)
4通过setConpent()来指定目标--->推荐
测试步骤
1>创建无参intent
2>创建compentName 对象
3>将compentName对象绑定给intent
--------------------------------------
隐式启动(组件名或者指向不可见);
1隐式启动安卓系统内置组件
测试步骤
打电话的权限
android.permission.CALL_PHONE
创建一个intent(action)Intent.ACTION_CALL
给intent绑定data(Uri)
Uri data = Uri.parse("tel://10086")
startactivity(intent)
Intent intent = new Intent(Intent.ACTION_CALL);Uri data = Uri.parse("tel://10086");intent.setData(data);startActivity(intent);
步骤
创建intent(action)
Intent.ACTION_DIAL
绑定data(Uri)
data = Uri.parse("tel:10086");
<span style="font-size:18px;"> intent = new Intent(Intent.ACTION_DIAL);Uri data = Uri.parse("tel:10086");intent.setData(data);startActivity(intent);</span>
创建intent(action)
Intent.ACTION_VIEW
绑定data(Uri)
data = Uri.parse("http://网址");
<span style="font-size:18px;"> intent = new Intent(Intent.ACTION_VIEW);data = Uri.parse("http://www.baidu.com");intent.setData(data);startActivity(intent</span>);
创建intent(action)
Intent.ACTION_VIEW
绑定data(Uri)
data = Uri.parse("file://文件的路径");
MP3播放
intent = new Intent(Intent.ACTION_VIEW);data = Uri.parse("file://mnt/sdcard/Music/CityHunter-Nina.mp3");intent.setDataAndType(data, "audio/mp3");startActivity(intent);
5>发送短信
(API等级高于或等于19)
1SmsManager 需要使用权限
android.permission.SEND_SMS
2创建SmsManager对象
SmsManager.getDefault();
3发送短信
sendTextMessage:可用于发送短信
public void sendTextMessage(
String destinationAddress,:电话
String scAddress,:短信中心号码null
String text,发送的内容
PendingIntent sentIntent:,发送短信成功后后续操作null
PendingIntent deliveryIntent:发送短信失败作操作null
) {
}
public ArrayList<String>
divideMessage(String text) {
将短信息进行拆分(拆分标准 中文70英文140)
}
不受api等级限制发送
直接调用系统的发送短信工具
<span style="font-size:18px;"> // 发送短信要求API大于等于19// 创建短信管理者SmsManager manager = SmsManager.getDefault();String destinationAddress = "10086";// 要发送的号码String scAddress = null;// 短信中心号码,可用为nullString text = "你好啊";// 发送内容PendingIntent sentIntent = null;// 发送成功后的后续操作PendingIntent deliveryIntent = null;// 发送失败后的后续操作manager.sendTextMessage(destinationAddress, scAddress, text,sentIntent, deliveryIntent);// 要添加权限</span>
步骤
intent(action);
setflag(标记)
addcategory(额外信息);
启动--activity结束
//返回Home页面,全部Activity都弹出栈Intent intent = new Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);
2自定义隐式启动
步骤
1>当前页
//创建的intent包含过滤器里的条件
条件为多个的则需要每个条件都要和目标组件对应
2>目标页
在acitivity标签创建<Intent-filter>
在标签内部添加对应的匹配条件
<activon android:name="....">
<category >
必备标签
<category android:name="android.intent.category.DEFAULT"/>
</Intent-filter>
3>书写过滤器
一个过滤器可以有多个action
一个activity可以有多个
intent-filter()也要保证每个过滤器里都有
<category android:name=
"android.intent.category.DEFAULT"/>
安卓系统匹配的时候只要和其中一条action匹配上就可以跳转
------------------------------------
intent 数据传递
1激活组件
2数据的传递
Extra
存数据 put...();
步骤
创建intent
调用intent
对应putExtra(key,value);--名值对做数据封装
取数据 get..();
目标界面
步骤
获取前一个界面传递过来的intent
Intent intent=getIntent();
返回谁把我这个界面启动了(intent)
掉用intent.get..Extra(key) 来取得数值
0 0
- Intent用法
- Intent用法
- intent 用法
- Intent 用法
- Intent用法
- Intent用法
- Intent用法
- Intent用法
- intent用法
- Intent用法
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法
- Android Intent 用法汇总
- Intent的常见用法
- Intent 用法大全
- Intent 用法大公開
- Android Intent 用法汇总
- Intent用法总结
- Intent 用法集合
- Hadoop和大数据:60款顶级开源工具
- 插入排序之--直接插入排序,希尔排序
- SOJ 1048
- 视图覆盖的一些经验,图片拉伸等
- javaweb学习总结(十六)——JSP指令
- Intent用法
- LNK2001
- 关于如何通过kali linux 攻击以及破解WPA/WPA2无线加密
- 如何上谷歌
- node express 快速入门
- 第十二周实践项目课后————3
- Android盒子开发,获取网络的信息(热点,WIFI,有线)
- UIBezierPath精讲(二)
- Qt/C++ 网易云api 在线播放音乐