Android组件通信——PendingIntent(二十八)

news2025/1/28 1:15:54

1. PendingIntent

1.1 知识点

(1)了解PendingIntent与Intent的区别;

(2)可以完成Notification功能的开发;

(3)可以使用PendingIntent进行短信的发送;

1.2 具体内容

Intent的功能主要是完成:一个Activity跳转到另外一个Activity或者是Service,表示的是一种操作意图;表示立即执行

PendingIntent:表示暂不执行的操作意图,是一种在某一个事件之后才进行操作的Intent对象。表示暂缓执行,遇到特殊的条件才执行。

范例:发送通知:Notifaction,表示的是提示用户操作组件。

package com.example.notificationproject;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.os.Bundle;

public class NotificationActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_notification);
		NotificationManager notificationManager = (NotificationManager) super
				.getSystemService(Context.NOTIFICATION_SERVICE);// 取得系统服务
		Notification notification = new Notification(R.drawable.logo,// 显示图标
				"来自毛栗子消息",// 信息提示
				System.currentTimeMillis());// 显示时间
		PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
				this.getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);// 取得PendingIntent对象
		notification.setLatestEventInfo(this, "maolizi", "毛栗子(www.csdn.com)", pendingIntent);//设置信息
		notificationManager.notify("maolizi",R.drawable.logo,notification);//发送消息
	}
}

 本程序就是取得通知服务,而后将通知发送出去,可以发现,当用户打开这个通知之后,就可以立刻回到指定的Intent,就是说是用户触发的时候才会进行跳转。

这次只是针对这个服务进行一些基本的讲解,以后大家去学习手机服务的时候,会有更多更好玩的东西。

public void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 

·String destinationAddress:表示收件人的地址

·String scAddress:设置短信的号码。如果为null的话,表示是手机中心号码

·String text:短信内容

·PendingInteng sentIntent:当信息发出之后,会通过PendingIntent来接受成功或者失败的信息报告,如果此参数为空,则会检查所有未知的应用程序,会消耗很长的事件

·PendingIntent deliveryIntent:当信息发送到收件处时,该PendingIntent触发。 

package com.example.notificationproject;

import java.util.Iterator;
import java.util.List;

import android.app.Activity;
import android.app.PendingIntent;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.widget.Toast;

public class NotificationActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_notification);
		String content = "毛栗子CSDN博客于2017年开始,现在码龄6年,已写博客90多篇,上传资源4个,阅读量快突破四万。主要撰写关于Java、Android、Linux方面的内容。";
		SmsManager smsManager = SmsManager.getDefault();//短信管理类
		PendingIntent sentIntent =  PendingIntent.getActivity(this, 0, super.getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);
		if(content.length()>70){
			List<String> res = smsManager.divideMessage(content);//拆分短信
			Iterator<String> it = res.iterator();
			while(it.hasNext()){
				String msg = it.next();
				smsManager.sendTextMessage("15555215554", null, msg, sentIntent, null);//发送短信
			}
		}else{
			smsManager.sendTextMessage("15555215554", null, content, sentIntent, null);//发送短信
		}
		Toast.makeText(this, "短信发送完成", Toast.LENGTH_LONG).show();
	}
}

配置权限:

<uses-permission android:name="android.permission.SEND_SMS"/>

 1.3 小结

(1)PendingIntent与Intent的最大区别在于一个将要执行,一个立即执行;

(2)在Android中的系统服务有许多的操作都是需要在某一特定环境下才会执行的Intent,这种操作就使用PendingIntent完成;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql作业(牛客60-80)

文章目录 606162636465666768697071727374757677787980 60 select cust_id from Customers;61 select distinct prod_id from OrderItems;62 select * from Customers;63 小小的脑袋大大的疑惑&#xff0c;按字母排&#xff1f;order by select cust_name from Customers orde…

计算机网络第2章-DNS(3)

DNS&#xff1a;因特网的目录服务 在因特网上&#xff0c;主机和人类都一样&#xff0c;可以用很多种方式进行标识&#xff0c;主机的一种标识方法是它的主机名。 但是主机名一般是用IP来表示&#xff0c;IP是由四个字节组成&#xff0c;并且有严格的层次结构&#xff0c;不利…

不止硬件,苹果的软件也是频出问题!iOS 17.0.3使iPhone在一夜之间随机开关机

就在我们以为iPhone的问题已经解决了一段时间的时候&#xff0c;一个新的问题似乎突然出现了。在Reddit和其他网站上&#xff0c;人们报告说&#xff0c;他们的iPhone在一夜之间莫名其妙地断电&#xff0c;有时会导致错过警报。 目前尚不清楚是什么原因导致了这个问题&#xf…

python利用多线程让http请求异步返回

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 有时我们可能会碰到这样一种情况&#xff1a; 我们有一个功能&#xff0c;这个功能对外提供了一个http接口&#xff0c; 我们需要对这个http接口发起请求才能启…

Liunx中日志分析与网络设置(极其粗糙版)

liunx系统日志的管理 系统日志&#xff1a;操作系统本身和大部分服务器程序的日志文件 日志是记录系统所产生的各种事故&#xff0c;在某个时间节点发生了什么&#xff0c;发生的原因 liunx的路径是/var/log下 /var/log/messages&#xff1a;内核日志还有公共信息日志(所有…

冒泡排序(学习笔记)

冒泡排序&#xff08;基于交换的排序&#xff0c;每一轮确定一个数的位置&#xff09; 哨兵举例&#xff1a; 待排序序列&#xff1a;6 3 1 2 5 第一轮排列&#xff1a; 3 6 1 2 5 3 1 6 2 5 3 1 2 6 5 3 1 2 5 6&#xff08;最大的数移动到了正确的位置&#xff09; 第二轮排列…

Mall脚手架总结(五) —— SpringBoot整合MinIO实现文件管理

前言 在项目中我们经常有资源的上传和下载的功能需求&#xff0c;比如用户头像、产品图片、配置文件等等&#xff0c;大数据量的文件存储无疑需要更高性能的数据存储服务&#xff0c;对于无需对结构实现复杂查询的文件对象来说&#xff0c;对象存储服务无疑是一个较好的选择&am…

并查集路径压缩

我们来看看如果要是100个数&#xff0c;往20个数的集合合并如何 那么我们应该&#xff0c;把数据量小的集合往数据量大的合并 解决另一种极端场景的路径压缩

限制条件加入构造范围:Gym - 102832L

https://vjudge.net/contest/587311#problem/D 场上列方程求首项&#xff0c;假设是全部加1&#xff0c;然后一部分&#xff08;后缀&#xff09;减去 k 1 k1 k1&#xff0c;就用到了以下两个条件&#xff1a; 但在这两种情况符合情况下&#xff0c;这个条件不一定满足 然后…

【软件测试】 初识软件测试

文章目录 &#x1f334;什么是软件测试&#x1f38b;软件测试和开发的区别&#x1f6a9;软件测试与调试的区别 &#x1f333;软件测试的发展&#x1f384;软件测试岗位&#x1f340;软件测试在不同类型公司的定位&#x1f38d;一个优秀的软件测试人员具备的素质&#x1f332;软…

105AspectRatio调整宽高比组件_flutter

AspectRatio组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比。 AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展&#xff0c;widget 的高度是由宽 度和比率决定的&#xff0c;类似于 BoxFit 中的 contain&#xff0c;按照固定比率去尽量占满区域。 …

【Redis】Java Spring操作redis

目录 引入Redis依赖StringRedisTemplate使用String使用List使用Set使用hash使用zset 引入Redis依赖 StringRedisTemplate 此处RedisTemplate是把这些操作Redis的方法&#xff0c;分成了几个类别&#xff0c;分门别类的来组织的。 此处提供的一些接口风格&#xff0c;和原生的Re…

利达卓越:发挥金融力量,促进团队发展

随着中国经济的快速增长和金融改革的逐步深化&#xff0c;我国金融业取得了令人瞩目的发展。作为经济的重要支柱&#xff0c;我国金融业的规模和实力不断扩大&#xff0c;已经成为全球最大的金融市场之一。利达卓越是一支由管理精英组成的团队&#xff0c;专注于金融行业的投资…

Empowering Low-Light Image Enhancer through Customized Learnable Priors 论文阅读笔记

中科大、西安交大、南开大学发表在ICCV2023的论文&#xff0c;作者里有李重仪老师和中科大的Jie Huang&#xff08;ECCV2022的FEC CVPR2022的ENC和CVPR2023的ERL的一作&#xff09;喔&#xff0c;看来可能是和Jie Huang同一个课题组的&#xff0c;而且同样代码是开源的&#xf…

解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法

文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、KNN三、K-均值四、降维算法五、梯度Boosting算法和AdaBoosting算法六、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法&#xff0c;通过对大量数据的学习和分析&…

数据结构与算法-(8)---队列(Queue)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

若依 ruoyi 路径 地址 # 井号去除

export default new Router({mode: history, // history 去掉url中的# 、hash 包含#号scrollBehavior: () > ({ y: 0 }),routes: constantRoutes })

嘉立创专业版新建元件

以2*24&#xff08;2mm&#xff09;排母为例 文件-新建-元件 新建器件 填上元件的基本信息&#xff0c;保存 选择库设计 填好参数&#xff0c;生成符号 给元件添加封装 需要先设计一个封装 选择header-V 填写参数&#xff0c;生成符号 保存即可。 再次进入元件的封装管理…

207、SpringBoot 整合 RabbitMQ 实现消息的发送 与 接收(监听器)

目录 ★ 发送消息★ 创建队列的两种方式代码演示需求1&#xff1a;发送消息1、ContentUtil 先定义常量2、RabbitMQConfig 创建队列的两种方式之一&#xff1a;配置式&#xff1a;问题&#xff1a; 3、MessageService 编写逻辑PublishController 控制器application.properties 配…

抖音开放平台第三方代小程序开发,授权事件、消息与事件通知总结

大家好&#xff0c;我是小悟 关于抖音开放平台第三方代小程序开发的两个事件接收推送通知&#xff0c;是开放平台代小程序实现业务的重要功能。 授权事件推送和消息与事件推送类型都以Event的值判断。 授权事件推送通知 授权事件推送包括&#xff1a;推送票据、授权成功、授…