首先,什么是桌面widget,桌面widget是一种桌面插件,如下图:
这种类型的控件叫做widget,一般长按桌面会弹出一个界面让你选择控件,选择完了拖到桌面就能使用了。
那如何为自己的app添加这么一个widget呢?前一篇博客写了个recyclerview的demo——RecyclerView科普–如何实现腾讯首页功能,下面我们为这个app来添加一个widget,先看一下效果吧。
然后点击这个桌面widget,让他跳转到我们的app里面
怎么样,效果还不错吧?
下面重点讲一下实现widget的主要步骤:
1. 在AndroidManifest.xml
里面定义声明 AppWidgetProvider
2. 初始化AppWidget的xml文件(信息)
3. 实现AppWidget的布局
4. 继承AppWidgetProvider
类,实现具体的 Widget 业务逻辑。
1、在AndroidManifest.xml
里面定义声明 AppWidgetProvider
<receiver android:name=".widget.RecyclerWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
<intent-filter>
中必须要包含 APPWIDGET_UPDATE
这个 <action>
,所有 Widget 的 broadcast 都是通过这个 filter 来接收的。<meta-data>
声明了 Widget的xml 信息,用的是 xml 目录下的 widget_info.xml。
2、widget_info.xml