Intent PendingIntent
来源:互联网 发布:大连开发区知润山房照 编辑:程序博客网 时间:2024/05/16 11:28
android 根本就不是很难的语言,我们只是苦于学习路径。
一. Intent
就是一个messag object,传递数据并开启组件(activity service。。。)
其传递数据的属性Data 该属性接受的是一个Uri对象,什么是Uri对象,就是一个字符创。格式是:
scheme://host:port/path
使用Intent启动组件有2中方式 显示 隐式
显示并传递数据:
Intent intent=new Intent(this,OtherActivity);
//设置Data属性传递数据,当然你也可以不传
intent.setData(Uri.parse("filepath"));
//此处要加这个判断 这是我们很多人都会忽略的
//有些第三方也会忘记这个判断 如果你要启动的组件不存在会报错
//比如第三方实现分享 如果微信在你手机中没有安装。而第三方没有这个判断,就会报错了
if(intent.resolveActivity(getPackageManager())!=null){
startActivity(intent);
}
隐式启动:
Intent intent=new Intent();
intent.setAction(Intetn.ACTION_SEND);
intent.setExtra("key","value");
intent.setType("text/plain");
if(intent.resolveActivity(getPackageManager())!=null){
startActivity(intent);
}
在我们配置清单中<Intent-filter>
我们经常只做如下使用
<Intent-filter>
<data android:mimeType="image/*"/>
</Intent-filter>
此种是什么情况呢,就是Intent中的URI是content:...或者file:... 这代表是本地数据,此时我们配置清单中就不需要设置URI
我们隐式启动还有一个知识点就是,如果有多个组件,你就必须创建一个dialog让用户选择,到底启动哪个组件。Intent这个class中已经提供方法了,很简单
Intent chooser=Intent.createChooser(intent,"title");
二. PendingIntent
其实他也就是Intent,没什么。只不过他对Intent进行了包装,实现了一些额外功能
使用到PendingIntent有以下几种场景:
用户和通知消息交互时(NotificationManager执行Intent)
用户和你的组件(app widget)交互时
未来某个时段执行某个意图(配合AlarmManager使用)、
然后直接看一个notification的使用吧
//NotificationCompat.Builder 初始消息的各类属性
NotificationCompat.Builder mBuilder=new NotificationCompat.Builder(this);
.setSmallIcon(R.drawable.notification_icon);
.setContentTitle("My Notification");
.setContentText("Hello World");
Intent intent=new Intent(this,OtherActivity);
TaskStackBuilder builder=TaskStackBuilder.create(this);
builder.addParentStack(OtherActivity.class);
builder.addNextIntent(intent);
//使用TaskStackBuilder获得pendingIntent
PendingIntent pendingIntent=builder.getPendingIntent(0,PendingIntent.FLAG_UPDATA_CURRENT);
//设置通知的pendingIntent
mBuilder.setContenIntent(pendingIntent);
NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
//mBuilder.builder()获得一个notification对象 notify发布这个通知
manager.notify(id,mBuilder.builder());
好的,就这么多
- intent, PendingIntent
- Intent PendingIntent
- PendingIntent和Intent
- Intent和PendingIntent
- PendingIntent与Intent区别
- PendingIntent 传 intent 问题
- PendingIntent 传 intent 问题
- PendingIntent和Intent
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别 .
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别
- Intent 和 PendingIntent 区别 .
- 【Android】pendingIntent和Intent
- 浅谈 Intent、PendingIntent
- android-app manifest(5) - API 23
- 设计模式——全局观
- 常用文件操作命令
- Ubuntu 14.04 google 拼音输入法设置
- solrj入门及进阶,高级使用
- Intent PendingIntent
- Solr Grouping / Field Collapsing(分组查询)
- ubuntu下vsftpd配置详细篇
- 零基础入门学习Python(2):字符串输出
- Avro技术应用_8. 混合模式 - MR 输入/出文件为 Avro类型 -- 待完善
- 数学对象
- linux下安装vsftp
- CButton类控件的使用
- Fragment简单的创建与使用