[实战] 关于AppWidgetProvider 桌面小工具如何实现

发布时间:2025-08-12 16:18

虚拟现实对教育的挑战:如何平衡现实与虚拟体验 #生活知识# #科技生活# #科技改变生活# #科技创新挑战#

原创 已于 2024-02-14 11:16:29 修改 · 1k 阅读

· 0

· 0 ·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

于 2021-08-14 09:16:00 首次发布

AppWidgetProvider提供一个在桌面的小窗口用来展示APP的内容。具体我们通过回答几个问题来展示如何实现。

1.怎么注册服务

2.怎么更新UI

3.怎么根据窗口大小使用不同的Layout

4.怎么定时刷新Layout

以下一一作答。

1.怎么注册服务

核心类,AppWidgetProvider 定义了基本的方法onAppWidgetOptionsChanged,onUpdate,onEnabled,onDisabled。

onAppWidgetOptionsChanged在窗口大小改变时被调用用来更新Layout。
onUpdate可视为init方法初始化UI
onEnabled在桌面上可能有一个或多个同类型窗口,这这个方法在第一个窗口被设置时调用。onDisabled在桌面上可能有一个或多个同类型窗口,这这个方法在最后窗口被取消时调用。

AppWidgetProvider本身是一个BroadcastReceiver所以它的lifecycle可以和APP中的activity是分开的。但是我们需要在manifest中注册这样系统能够捕获我们的provider。

<receiver android:name="ExampleAppWidgetProvider" >

<intent-filter>

<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

</intent-filter>

<meta-data android:name="android.appwidget.provider"

android:resource="@xml/appwidget_info" />

</receiver>

XML

代码中 appwidget_info 定义了一些配置信息。

class ExampleAppWidgetProvider : AppWidgetProvider() {

override fun onReceive(context: Context?, intent: Intent?) {

super.onReceive(context, intent)

}

override fun onAppWidgetOptionsChanged(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int, newOptions: Bundle) {

Utils.scheduleJob(context)

}

override fun onUpdate(

context: Context,

appWidgetManager: Ap

Kotlin

运行

网址:[实战] 关于AppWidgetProvider 桌面小工具如何实现 https://www.yuejiaxmz.com/news/view/1227686

相关内容

redmipad桌面小工具如何添加
Win11桌面怎么智能管理?如何实现高效桌面整理?
喜爱Windows7桌面实用小工具便捷生活
如何在桌面添加小工具 爱问知识人
远程办公利器:如何高效利用远程桌面连接实现无缝工作
拒绝千篇一律:从实用工具到桌面美化,打造个人专属桌面经验分享
如何快速使用远程桌面,实现无缝远程办公?
介绍几款实用的桌面助手小工具,桌面轻松变整洁
金山桌面清理工具 金山桌面清理工具最新下载
物联网系统:如何实现智能家居生活的关键工具

随便看看