【Android】AppWidget桌面小部件

什么是App Widget?

AppWidget是应用程序窗口小部件,是微型的应用程序视图,它可以被嵌入到桌面应用程序中,并接收周期的更新。

如何实现AppWidget?

1. 新建一个AppWidget类继承AppWidgetProvider(AppWidgetProvider继承BroadcastReceiver),并实现相关生命周期方法。

onUpdate()

当widget更新时被执行。

注意:用户首次添加widget时,onUpdate()也会被调用。但是如果定义了widget的configure属性(即android:config),onUpdate()不会被调用,之后更新widget时,onUpdate()才会被调用。

onAppWidgetOptionsChanged()

当widget初次被添加或者当widget的大小被改变时,执行该方法。

onDeleted()

当widget被删除时执行。

onEnabled()

当第一个widget实例被创建时执行。

onDisabled()

当最后一个widget实例被删除执行。

onReceiver()

当接收到广播时执行。

2.        在清单文件中配置AppWidgetProvice实现类


<receiverandroid:name="com.itcast.weibo.ui.WeiboWidget">

<intent-filter>

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

</intent-filter>

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

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

</receiver>

3.        在res目录下新建xml文件夹,新建widget的xml描述文件


<?xmlversion="1.0"encoding="utf-8"?>

<appwidget-providerxmlns:android="http://schemas.android.com/apk/res/android"

android:minWidth="300dip"

android:minHeight="72dip"

android:updatePeriodMillis="0"

android:initialLayout="@layout/weibo_widget">

</appwidget-provider>

属性说明:

minWidth和minHeight

指定App Widget布局需要的最小区域

minResizeWidth和minResizeHeight

指定Widget的最小尺寸。

updatePerioMillis

定义widget的更新频率。

注意:

n  当updatePeriodMillis的值小于30分钟时,系统会自动将更新频率设为30钟。

n  如果需要频繁更新,或者不希望设备休眠状态更新,那么可以使用基于alarm的更新替代widget自身的刷新机制。将alarm类型设置为ELAPSED_REALTIME或RTC,将不会唤醒休眠的设备,同时应将updatePeriodMillis设为0。

initialLayout

指向widget的布局资源文件

configure

可选属性,定义了widget的配置Activity。如果定义了该项,那么当widget创建时,会自动启动该Activity。

previewImage

指定预览图,该预览图在用户选择widget时出现,如果没有提供,则会显示应用的图标。

autoAdvanceViewId

指定一个子View ID,表明该子View会自动更新。

resizeMode

指定widget调整尺寸的规则。(可选值:”horizontal”[水平拉伸], ”vertical”[垂直拉伸], ”none”[不能拉伸])

widgetCategory

指定widget能显示的地方,如Home界面、锁屏界面(可选值:”home_screen”, “keyguard”)

initialKeyguardLayout

指向widget位于锁屏界面的布局资源文件。

时间: 2024-08-05 19:10:10

【Android】AppWidget桌面小部件的相关文章

android 创建桌面小部件widget

1. 创建自定义widget的广播类,继承自 AppWidgetProvider(有了这个广播就会在widgets中能够选择了吗?)这个广播的生命周期主要有五个,在第一个widget拖动到桌面和最后一个widget删除和已经有widget时拖动到桌面的生命周期是不同的 根据对生命周期的分析,在onUpdate中进行初始化,在onDisabled中进行销毁(关闭服务). public class ProcessWidgetReceiver extends AppWidgetProvider { p

Android桌面小部件AppWidget开发

什么是AppWidget AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图: 图中我用×××箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用.典型的程序有时钟.天气.音乐播放器等.AppWidget 是Android 系统应用开发层面的一部分,有着特殊用途,使用得当的化,的确会为app 增色不少,它的工作原理是把一个进程的控件嵌入到别外一个进程的窗口里的一种方法.长按桌面空白处,会出

Android 桌面小部件(AppWidgetProvider)的应用

根据应用的需要,有的APP中内嵌了桌面小部件代码,以至于我们可以通过长按手机屏幕-->小部件-->选择你需要添加的应用小部件.这样可以给用户提过了较好的.快捷的使用体验方式,这边是Android桌面小部件的实际意义. 下图是有道词典的一个桌面小部件的实例(另外红日的icon便是红日APP的一个简单的桌面小部件): AppWidgetProvider是Android提供的用于实现桌面小部件的类,其本质是一个广播.另外也用到了RemoteViews这个类,这是一个跨进程的远程类,使用场景有两种:通

Android开发中实现桌面小部件

在Android开发中,有时候我们的App设计的功能比较多的时候,需要根据需要更简洁的为用户提供清晰已用的某些功能的时候,用桌面小部件就是一个很好的选择,即App Widget,下面我们就用Android studio来创建一个简单的桌面小部件: 选择New->Widget->App Wight                                                                 接下来设置App Widget的一些信息               

桌面小部件AppWidgetProvider简单分析

1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息(大小,更新频率等),xml形式 AppWidgetManger:AppWidget管理类,用于向provider发送消息 RemoteViews:可以在其他进程中运行的类,用于向provider发送通知. RemoteViewsService : 是一个远程的服务适配器 可以请求RemoteVie

Android 之窗口小部件高级篇--App Widget 之 RemoteViews - 跨到对岸去

在之前的一篇博文( Android 之窗口小部件详解--App Widge t)中,已经介绍了App Widget的基本用法和简单实例.这篇主要讲解 App Widget 的高级内容,即通过 RemoteViews 去管理Widget的中GridView.ListView.StackView等内容.在学习本篇之前,建议读者先掌握 App Widget 的基本知识. 1 RemoteViews等相关类的介绍 下面先简单介绍RemoteViews.RemoteViewsService.RemoteV

解决 三星Note3 桌面小部件不实时更新/不刷新 的问题

机型及问题描述:我的是三星note3 (国行 SM-N9008V),已ROOT,安装了LBE安全大师.在桌面小部件中,有些不会实时更新.比如有 滴答清单(办过的事项无法勾选),百度云音乐(歌曲播放更新不及时),系统自带健走计步器(走路数量不更新)等. 问题原因:经测试,原因应该出在LBE安全大师会自动清理RAM,导致负责桌面小部件的进行被杀掉了,致使无法顺利更新小部件. 解决方法:打开LBE安全大师--"手机加速"--"任务管理"--上方的"白名单任务&q

Android 之窗口小部件详解--App Widget

1 App Widget简介 App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widget Provider来发布一个Widget. 本文参考Android官方文本,先介绍App Widget的主要组件,然后再以示例来详细说明. 2 App Widget主要的相关类介绍 2.1 AppWidgetProvider AppWidgetProvider 继承自 BroadcastRecei

Android Widget窗口小部件

1.<meta-data>为组建提供名值对 <meta-data android:name="string" android:resource="resource specification" android:value="string" /> 可定义在<activity><activity-alias> <service><receiver>中 一个组件可包含任意多个<