AppWidget

以前我们所见的Widget都是以Activity为主体的,但是在Android手机桌面(Home Screen AppWidgets)上的"小玩意"皆是属于桌面上的Android AppWidget。
类关系:
java.lang.Object
↳ android.content.BroadcastReceiver
↳ android.appwidget.AppWidgetProvider
AppWidget 框架类
1、AppWidgetProvider :继承自 BroadcastRecevier , 在AppWidget 应用 update、enable、disable 和 delete 时接收通知。其中,onUpdate、onReceive 是最常用到的方法,它们接收更新通知。
2、 AppWidgetProvderInfo:描述 AppWidget 的大小、更新频率和初始界面等信息,以XML 文件形式存在于应用的 res/xml/目录下。
3、AppWidgetManger :负责管理 AppWidget ,向 AppwidgetProvider 发送通知。
4、RemoteViews :一个可以在其他应用进程中运行的类,向 AppWidgetProvider 发送通知。
生命周期:
1、onDeleted(Context context, int[] appWidgetIds)删除一个AppWidget时调用
2、onDisabled(Context context)删除最后一个AppWidget是调用
3、onEnabled(Context context)AppWidgetProvider实例化时调用
4、onReceive(Context context, Intent intent)
注意:因为 AppWidgetProvider 是继承自BroadcastReceiver 所以可以重写 onRecevie 方法,当然必须在后台注册Receiver
5、onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)向桌面添加一个AppWidget时调用。
那么如果创建这么一个工程呢?
1、新建AppWidgetProvderInfo
2、写一个类继承自AppWidgetProvider
3、后台注册Receiver
配置文件说明:
1. res/xml/appwidgetprovider_info.xml,该文件是AppWidgetProvderInfo对象,用来描述 AppWidget 的大小、更新频率和初始界面等信息。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="72dip"
android:minHeight="72dip"
android:updatePeriodMillis="60000"
android:initialLayout="@layout/appwidget_layout">
</appwidget-provider>

android:initialLayout="@layout/appwidget_layout" 此句为指定桌面组件的布局文件。
2. appwidget_layout.xml, appWidget的布局文件,也就是显示在homescreen上的remoteviews,你可以根据自己需要配置适当的布局。
<?xml version="1.0" encoding="utf-8"?>
<!-- appWidget的布局文件,也就是显示在homescreen上的remoteviews -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/tv_appwidget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="WidgetDemo"
/>
</LinearLayout>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值