AppWidgetHost在AppWidget系统中是Local端;AppWidgetProvider端是Remote端。 这是AppWidgetProvider的一个模板模式实现,要求AppWidgetProvider的实现者: 在AndroidManefest.xml中声明这个AppWidgetProvider是"android.appwidget.action.APPWIDGET_UPDATE 而AppWidgetService查询系统中已经安装了哪些AppWidgetProvider也是通过查询这个接收者的Intent来的实现。 通常,对于应用开发来说不太注重AppWidget其他的部分,只是写AppWidgetProvider,但一般也都称AppWidgetProvider为AppWidget开发。 也是运行于自己的进程空间,典型的如“电量控制”这个AppWidgetProvider运行于Settings中。
开发桌面控件时,只需继承BroadcastReceiver的子类APPWidgetProvider,并重写APPWidgetProvider不同状态的生命周期方法即可。 APPWidgetProvider提供了四个不同的生命周期方法: onUpdate():负责更新桌面控件的方法。 onDelete():当一个或多个桌面控件被删除时回调该方法。 一般,开发桌面控件只需定义一个APPWidgetProvider的子类,并重写它的onUpdate()方法即可,重写该方法的步骤: 创建一个RemoteViews对象,创建该对象时可以指定加载指定的界面布局文件 归纳起来,其核心代码就是使用APPWidgetManager通过RemoteViews来更新APPWidgetProvider的子类实例(需要将它包装成ComponentName对象)。 由于APPWidgetProvider继承了BroadcastReceiver,因此APPWidgetProvider本质还是一个BroadcastReceiver,需要在AndroidManifest.xml
Widget布局,Widget配置,AppWidgetProvider与Configuration Activity Android Widget xml布局类型:AppWidget Provider 设置更新时间 android:updatePerioMillis="66666666"> </appwidget-provide> public class WidgetProvider extends AppWidgetProvider Widget使用 AndroidManifest中声明AppWidget xml中定义AppWidget配置文件 layout中定义Widget布局文件 创建类继承AppWidgetProvider类
在Widget中,通过AppWidgetProvider来管理Widget的行为,通过RemoteView来对Widget进行布局,通过AppWidgetManager来对Widget进行刷新。 首先,每个Widget都包含一个AppWidgetProvider。 AppWidgetProvider本质是广播,所以它拥有和广播一致的生命周期,ROM通常会定制广播的生命周期时间,例如设置为5s、7s,如果超过这个时间,那么就会产生ANR或者其它异常。 所以,我们一般不会把网络请求直接写在AppWidgetProvider中,一个比较好的方式,就是通过Service来进行更新。 首先我们创建一个Service,用来进行后台请求。 class NewAppWidget : AppWidgetProvider() { override fun onUpdate(context: Context, appWidgetManager
2.桌面小部件则是通过AppWidgetProvider来实现的,AppWidgetProvider本质上是一个广播。
为了简化桌面小控件的开发,Android系统提供了一个名为AppWidgetProvider的BroadcastReceiver的子类。 AppWidgetProvider类里提供了如下四个不同的生命周期方法: Ø onUpdate():负责更新桌面控件,它只有在小控件被用户放到桌面上时才会被调用到。 一般来说,开发桌面小控件只需要定义一个AppWidgetProvider的子类,并重写它的onUpdate()方法即可,重写这个方法的步骤如下: (1) 创建一个RemoteViews对象,创建该对象时可以加载指定的界面布局文件 minHeight="52px" android:updatePeriodMillis="60000" android:initialLayout="@layout/digitclock"/> 继承自AppWidgetProvider 的数字时钟类的代码如下: public class DigitClock extends AppWidgetProvider { private Timer timer = new Timer
Widget的创建步骤 写一个类继承AppWidgetProvider,这个是一个广播接收者,所以要在清单文件中进行配置 public class MyWidget extends AppWidgetProvider
/com/android/alarmclock/DigitalAppWidgetProvider.java public class DigitalAppWidgetProvider extends AppWidgetProvider
桌面小部件 AppWidgetProvider 继承自 BroadcastReceiver,它能接收 widget 相关的广播,例如 widget 的更新、删除、开启和禁用等。 第一步:创建一个AppWidgetProvider public class MyWidgetProvider extends AppWidgetProvider { // 点击事件的广播ACTION "@drawable/rect_yellow" android:updatePeriodMillis="86400000" > </appwidget-provider> 第四步:声明AppWidgetProvider
(2)RemoteViews主要用于通知栏通知和桌面小部件的开发,通知栏通知是通过NotificationManager的notify方法来实现的;桌面小部件是通过AppWidgetProvider来实现的 appwidget-provider> 3.定义小部件的实现类:书中的示例实现了一个显示一张图片的小部件,每次点击小部件的时候图片就会旋转一周; public class MyAppWidgetProvider extends AppWidgetProvider action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> </receiver> (5)AppWidgetProvider
remoteviews使用了AppWidgetProvider类实现桌面小部件,本质是一个广播。 AppWidgetProvider 方法 onEnable:当窗口小部件第一次添加到桌面时,调用这个方法,多次添加只会调用一次 onUpdate:当小部件添加或每次更新都会调用方法,设置updatePeriodMillis AppWidgetProvider的updateAppwidget内部通过apply与reapply加载更新界面 apply:加载布局并更新界面,而reapply只会更新界面。
Widget布局,Widget配置,AppWidgetProvider与Configuration Activity Android Widget xml布局类型:AppWidget Provider 设置更新时间 android:updatePerioMillis="66666666"> </appwidget-provide> public class WidgetProvider extends AppWidgetProvider Widget使用 AndroidManifest中声明AppWidget xml中定义AppWidget配置文件 layout中定义Widget布局文件 创建类继承AppWidgetProvider类
hint C. android:sharedUserId D. android:typeface 第三部分(Part3)Android多媒体测试共10题(全部单选,每题2分,总分20分) 41、关于AppWidgetProvider 类中,每接收一次广播消息就调用一次的方法是(a ) A、onReceive() B、onUpdate() C、onDeleted() D、onEnabled() 42、关于AppWidgetProvider
在前端,应用首先注册 AppWidgetProvider 来定义 Widget 行为,以及注册 AppWidgetProviderInfo 来定义元数据。
1.创建AppWidget 总的来说分以下几个部分: ①定义AppWidgetProvider 创建一个AppWidgetProvider子类,并创建对应的AppWidgetProviderInfo 配置文件
不是左右侧划, 需要修改一些地方; -- VerticalSeekBar 介绍 : 继承 SeekBar, 这个组件是一个垂直的拖动条; -- VLCAppWidgetProvider 介绍 : 集成 AppWidgetProvider