当前位置: 首页 > news >正文

Android原生Widget使用步骤

需要创建三个XML文件以及一个Class文件
三个XML文件分别是

  1. Widget布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@android:color/white"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="Hello, Widget!"android:textSize="20sp" />
</RelativeLayout>
  1. WidgetInfoProvider文件
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"android:minWidth="40dp"android:minHeight="40dp"android:updatePeriodMillis="86400000"android:initialLayout="@layout/widght_layout"android:resizeMode="horizontal|vertical"android:widgetCategory="home_screen|keyguard"android:previewImage="@drawable/ic_launcher_background" />
  1. AndroidMainfest文件

3.1 在receiver标签下,添加广播的Action
3.2 在meta-data标签下,表明这个广播接收器是一个原生Widget,并加载原生Widget配置文件

    <receiverandroid:name=".MyTimeWidget"android:exported="true"><intent-filter><action android:name="android.appwidget.action.APPWIDGET_UPDATE" /><action android:name="com.ljheee.widget.UPDATE_TIME" /></intent-filter><meta-dataandroid:name="android.appwidget.provider"android:resource="@xml/my_time_widget_info" /></receiver>

4.继承AppWidgetProvider(实际上是一个广播接收器)

public class MyWidget extends AppWidgetProvider {@Overridepublic void onEnabled(Context context) {super.onEnabled(context);// 在第一个 Widget 实例添加到桌面时调用}@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {super.onUpdate(context, appWidgetManager, appWidgetIds);final int N = appWidgetIds.length;for (int i = 0; i < N; i++) {int appWidgetId = appWidgetIds[i];// 创建 RemoteViews 对象,用于更新 Widget 布局RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widght_layout);// 在这里可以对 RemoteViews 进行更多的操作,例如设置文本、图片等// 创建一个 Intent,用于点击事件Intent intent = new Intent(context, MyWidget.class);intent.setAction("com.example.myapp.ACTION_CLICK");PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 更新 WidgetappWidgetManager.updateAppWidget(appWidgetId, views);}}@Overridepublic void onDisabled(Context context) {super.onDisabled(context);// 在最后一个 Widget 实例从桌面移除时调用}@Overridepublic void onRestored(Context context, int[] oldWidgetIds, int[] newWidgetIds) {super.onRestored(context, oldWidgetIds, newWidgetIds);}@Overridepublic void onDeleted(Context context, int[] appWidgetIds) {super.onDeleted(context, appWidgetIds);// 当 Widget 被删除时调用}@Overridepublic void onReceive(Context context, Intent intent) {super.onReceive(context, intent);// 接收广播消息,可以处理 Widget 的点击等事件if (intent.getAction().equals("com.example.myapp.ACTION_CLICK")) {// 处理点击事件// 可以在此处添加相应的逻辑,如更新 Widget 内容或执行其他操作}}
}

相关文章:

Android原生Widget使用步骤

需要创建三个XML文件以及一个Class文件 三个XML文件分别是 Widget布局文件 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_p…...

实验八 指针2

7-1 利用指针返回多个函数值 分数 30 全屏浏览 切换布局 作者 陈晓梅 单位 广东外语外贸大学 读入n个整数&#xff0c;调用max_min()函数求这n个数中的最大值和最小值。 输入格式: 输入有两行&#xff1a; 第一行是n值&#xff1b; 第二行是n个数。 输出格式: 输出最大…...

1 数据库(下):多表设计 、多表查询 + SQL中的with查询语法(MySQL8.0以后版本才支持这种新语法)+ 数据库优化(索引优化)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、多表设计1 多表设计-概述2 三种多表关系一对多&#xff08;多对一&#xff09;&#xff08;1&#xff09;无外键约束&#xff08;逻辑外键&#xff09;&…...

什么是.net framework,什么是.net core,什么是.net5~8,版本对应关系

我不知道有多少人和我一样&#xff0c;没学习过.netCore&#xff0c;想要学习&#xff0c;但是版本号太多就蒙了&#xff0c;不知道学什么了&#xff0c;这里解释下各个版本的关系 我们一般开始学习微软的时候&#xff0c;都是开始学习的.netframework&#xff0c;常用的就是4…...

vulhub-wordpress靶场

一.主题上传漏洞 来到靶场点击主题选择add new 这里有一个上传主题的地方 我们可以去网上找到wordpress主题下载一个 wordpress模板 网页设计模板 免费 免费下载 - 爱给网 下载完成后对我们有用的东西只有这一个目录&#xff0c;把它拖出来 点开moban目录后&#xff0c;创建…...

安装与配置

《PHP Libxml》是一个在PHP中处理XML和HTML文档的重要库。它提供了丰富的API&#xff0c;支持DOM、SimpleXML和XMLReader等多种解析方式&#xff0c;广泛应用于各种编程语言和项目中。 安装与配置 安装: 在PHP中&#xff0c;libxml扩展通常是默认启用的。如果你需要手动安装&…...

斗鱼Android面试题及参考答案

常用的图片框架有哪些? Glide:是一个快速高效的 Android 图片加载库,专注于平滑滚动。它支持多种图片格式,包括 GIF,具有高效的缓存策略,能自动管理图片的生命周期,避免内存泄漏和 OOM 错误。其 API 简洁易用,可轻松实现图片的加载、显示和缓存等功能,如一行代码即可实…...

Could not install Gradle distribution from 的解决办法

在安装完成AndroidStudio之后,运行工程出现如下错误 Could not install Gradle distribution from https://services.gradle.org/distributions/gradle-6.5-bin.zip. 错误原因是:对应版本的Gradle文件下载失败了,我这里是gradle-6.5-bin.zip,不同版本的android studio也可…...

基于 SensitiveWordBs 实现敏感词过滤功能

在现代的互联网应用中&#xff0c;敏感词过滤已成为一个必不可少的功能&#xff0c;尤其是在社交媒体、评论审核等需要保证内容健康的场景下。本文将基于开源库https://github.com/houbb/sensitive-word&#xff0c;详细讲解如何通过自定义敏感词库和工具类实现高效的敏感词过滤…...

网络安全威胁2024年中报告

下载地址&#xff1a; 网络安全威胁2024年中报告-奇安信...

批次特征组杂记

批次特征组杂记 运维的时候新增了一个批次特征&#xff0c;然后发现不能按照要求跑到之前已经分好的批次特征组。 研究了半天原来是通过布局实现的。 特此记录。...

【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题

【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题 一、问题背景 我们在应用开发评论输入框时&#xff0c;常规的需求样式是&#xff1a;输入框view和键盘贴近&#xff0c;上半部展示信息区的形式&#xff0c;这样的设计&#xff0c;方便用户不割裂的去评论发言。 但是在…...

如何在LabVIEW中更好地使用ActiveX控件?

在LabVIEW中&#xff0c;ActiveX控件可以帮助实现与其他应用程序或第三方组件的集成&#xff08;例如Microsoft Excel、Word、Internet Explorer等&#xff09;。以下是一些建议&#xff0c;帮助您更好地在LabVIEW中使用ActiveX控件&#xff1a; ​ 1. 理解ActiveX控件的基本原…...

【视觉SLAM:四、相机与图像】

相机模型 相机模型是计算机视觉中的重要内容&#xff0c;用于描述真实相机如何将三维世界投影到二维图像平面。以下从多个角度介绍常见的相机模型。 针孔相机模型 针孔相机模型是最简单的相机模型&#xff0c;用数学公式描述从三维世界到二维图像平面的映射关系。核心公式如…...

如何利用无线路由器实现水泵房远程监测管理

水泵站广泛部署应用在工农业用水、防洪、排涝和抗旱减灾等方面&#xff0c;如果水泵站发生异常&#xff0c;往往会对生产生活造成诸多损失&#xff0c;甚至引发安全事故。因此&#xff0c;建立一套高效、可靠的泵站远程监测管理系统至关重要。 方案背景 目前&#xff0c;我国大…...

使用ArcGIS Pro自带的Notebook计算多个遥感指数

在之前的分享中&#xff0c;我们介绍了如何使用ArcPy将GEE下载的遥感影像转为单波段文件。基于前面创建的单波段文件&#xff0c;我们可以一次性计算多种遥感指数&#xff0c;例如NDVI、EVI、NDSI等。我这里直接在ArcGIS Pro中自带的Notebook进行的运行。如下图所示&#xff0c…...

宝塔-firefox(Docker应用)-构建自己的Web浏览器

安装基础软件 宝塔中安装firefox(Docker应用) 。宝塔中需要先安装docker及docker-composefirefox配置安装 点击firefox应用&#xff0c;选择【安装配置】点击右边绿色按钮&#xff0c;进行安装&#xff0c;这一步等待docker-compose根据你的配置初始化docker应用 等待安装 …...

OpenCV-Python实战(8)——图像变换

一、缩放 cv2.resize() img cv2.resize(src*,dsize*,fx*,fy*,interpolation*) img&#xff1a;目标图像。 src&#xff1a;原始图像。 dsize&#xff1a;&#xff08;width&#xff0c;height&#xff09;图像大小。 fx、fy&#xff1a;可选参数&#xff0c;水平/垂直方向…...

存储进阶笔记(二):Linux 存储栈:从 Device Mapper、LVM 到文件系统(2024)

记录一些平时接触到的存储知识。由于是笔记而非教程&#xff0c;因此内容不求连贯&#xff0c;有基础的同学可作查漏补缺之用。 存储进阶笔记&#xff08;一&#xff09;&#xff1a;硬件基础&#xff1a;HDD/SDD、JBOD、RAID 等&#xff08;2024&#xff09; 存储进阶笔记&am…...

Linux(Centos 7.6)基础命令/常用命令说明

1.目录相关命令 命令命令说明pwd用于显示/打印当前目录位置。ls/ll 列出当前目录下的文件或者目录&#xff0c;ll是ls -l的别名&#xff0c;ls仅显示名称&#xff0c;ll会显示详细的目录文件信息。 cd目录切换&#xff0c;常见用法有&#xff0c;cd /切换到根目录&#xff0c;…...

【ESP32开发实战:HTTP客户端高效连接物联网云平台】

1. ESP32与物联网云平台的高效连接之道 第一次用ESP32连接物联网云平台时&#xff0c;我盯着满屏的HTTP状态码和JSON数据发懵——明明官方示例代码能跑通&#xff0c;换成自己的项目就各种超时和内存溢出。后来才发现&#xff0c;物联网设备的HTTP通信就像外卖小哥送餐&#xf…...

如何高效使用付费墙绕过工具:Chrome扩展的完整实践指南

如何高效使用付费墙绕过工具&#xff1a;Chrome扩展的完整实践指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取日益重要的今天&#xff0c;付费墙成为许多用户访问优质…...

【需求改变与测试如何】

需求一旦修改&#xff0c;测试该如何进行呢&#xff1f; 最近面临的项目&#xff0c;经过很多次需求更改或者是前期没有需求&#xff0c;实际操作起来&#xff0c;让人很是头疼&#xff0c;恰到也看到大家也有着相同的讨论。 来源于微信公众号&#xff1a;测试论道学习&#x…...

高压电源软启动:从浪涌抑制到系统可靠性的工程实践

1. 高压电源软启动的必要性 第一次见到整流二极管炸裂的场景&#xff0c;至今记忆犹新。那是在一个工业电源调试现场&#xff0c;工程师刚合上电闸就听到"啪"的一声脆响&#xff0c;随后便闻到焦糊味——价值数百元的整流模块瞬间报废。罪魁祸首就是电容滤波电路带来…...

SecGPT-14B模型版本管理:无缝升级OpenClaw依赖的安全分析能力

SecGPT-14B模型版本管理&#xff1a;无缝升级OpenClaw依赖的安全分析能力 1. 为什么需要关注模型版本管理 上周我在用OpenClaw自动化处理安全日志时&#xff0c;突然发现几个原本能识别的攻击模式开始出现误判。排查后发现是底层SecGPT-14B模型更新后行为发生了变化——这个经…...

OpenClaw极限测试:Phi-3-mini-128k-instruct连续运行7天稳定性报告

OpenClaw极限测试&#xff1a;Phi-3-mini-128k-instruct连续运行7天稳定性报告 1. 测试背景与动机 去年夏天&#xff0c;当我第一次在个人笔记本上部署OpenClaw时&#xff0c;最担心的不是功能实现&#xff0c;而是长期运行的稳定性。作为一个需要7*24小时工作的自动化助手&a…...

Java SpringBoot+Vue3+MyBatis 图书进销存管理系统系统源码|前后端分离+MySQL数据库

摘要 随着信息技术的快速发展&#xff0c;传统图书进销存管理方式逐渐暴露出效率低下、数据冗余和人工操作繁琐等问题。图书行业对高效、精准的管理系统需求日益增长&#xff0c;尤其在库存管理、销售统计和数据分析方面&#xff0c;亟需一套智能化解决方案。基于前后端分离架构…...

【LeetCode】队列 栈 | 225.用队列实现栈

题目https://leetcode.cn/problems/implement-stack-using-queues/description/思路 两个队列 利用两个队列倒腾数据&#xff0c;保证一个队列始终为空&#xff0c;用来暂存除"栈顶"外的所有元素。每次push总是往非空队列里加&#xff08;保证一个队列为空&#xff0…...

为什么一个非常大的数的导数是一个非常小的数?

“数”本身没有导数&#xff0c;因为导数是针对函数的&#xff08;描述函数在某点的变化率或斜率&#xff09;。如果你指的是某个函数在自变量很大时&#xff0c;函数值&#xff08;y&#xff09;变得“非常大”&#xff0c;但其导数&#xff08;y&#xff09;却“非常小”&…...

如何用Mac Mouse Fix终极提升你的Mac鼠标体验:完整配置指南

如何用Mac Mouse Fix终极提升你的Mac鼠标体验&#xff1a;完整配置指南 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为Mac上的鼠标体验感…...