Android控件AppWidgetProvider使用方法详解

Android控件AppWidgetProvider使用方法详解,第1张

概述介绍AppWidgetProvider是Android中提供的用于实现桌面小工具的类,其本质是一个广播,即BroadcastReceiver,在实际的使用中,把AppWidgetProvider当成一个BroadcastReceiver即可

介绍

appwidgetprovider是AndroID中提供的用于实现桌面小工具的类,其本质是一个广播,即broadcastReceiver,在实际的使用中,把appwidgetprovider当成一个broadcastReceiver即可

1. 为AppWidget提供一个文件定义小控件的基本配置信息

在资源文件夹res目录下新建xml文件夹,添加app_Widget_provIDer_info.xml文件内容为:

<?xml version="1.0" enCoding="utf-8"?>  <!--小控件宽高-->  <!--androID:minWIDth="40dp"-->  <!--androID:minHeight="40dp"-->  <!--更新时间-->  <!--androID:updatePeriodMillis="86400000"-->  <!--用于指定预览图片。即搜索到Widget时,查看到的图片。若没有设置的话,系统为指定一张默认图片。-->  <!--androID:prevIEwImage="@drawable/Widget_flashlight"-->  <!--Widget 添加到手机主屏幕中的layout-->  <!--androID:initialLayout="@layout/flash_light_Widget"-->  <!--androID:resizeMode : Widget可以被拉伸的方向。horizontal表示可以水平拉伸,vertical表示可以竖直拉伸-->  <!--androID:resizeMode="horizontal|vertical"--><appWidget-provIDer xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:minWIDth="40dp"  androID:minHeight="40dp"  androID:updatePeriodMillis="86400000"  androID:prevIEwImage="@drawable/ic_launcher"  androID:initialLayout="@layout/Widget_layout"  androID:resizeMode="horizontal|vertical"></appWidget-provIDer>

2. 创建一个WidgetProvIDer继承自appwidgetprovider;

public class Myappwidgetprovider extends appwidgetprovider {  //没接收一次广播消息就调用一次,使用频繁   public voID onReceive(Context context,Intent intent) {    super.onReceive(context,intent);  }  //每次更新都调用一次该方法,使用频繁   public voID onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIDs) {    super.onUpdate(context,appWidgetManager,appWidgetIDs);  }  //没删除一个就调用一次   public voID onDeleted(Context context,int[] appWidgetIDs) {    super.onDeleted(context,appWidgetIDs);  }  //当该Widget第一次添加到桌面是调用该方法,可添加多次但只第一次调用   public voID onEnabled(Context context) {    super.onEnabled(context);  }  //当最后一个该Widget删除是调用该方法,注意是最后一个   public voID onDisabled(Context context) {    super.onDisabled(context);  }}

3. 为 WidgetProvIDer创建一个布局文件

布局为常见布局

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:layout_wIDth="64dp"  androID:layout_height="64dp"   >  <Imagebutton    androID:ID="@+ID/Widget_led"    androID:layout_margin="2dp"    androID:background="@drawable/Widget_led"    androID:src="@drawable/ic_launcher"    androID:scaleType="center"    androID:layout_wIDth="64.0dip"    androID:layout_height="64.0dip" /></relativeLayout>

4. 注册Manifest.xml

配置基本和广播一样,使用receiver 节点,Meta-data 节点的name 为固定格式,resource为第一步定义的配置信息,intent-filter节点第三个action必须提供

<receiver androID:name=".jf.jfclean.Widget.FlashlightWidget">      <intent-filter>        <action androID:name="action_led_on" />        <action androID:name="action_led_off" />        <action androID:name="androID.appWidget.action.APPWidget_UPDATE" />      </intent-filter>      <Meta-data        androID:name="androID.appWidget.provIDer"        androID:resource="@xml/flash_light_Widget_info" />    </receiver>

5. 使用PendingIntent和RemoteVIEws对AppWidget绑定监听器,使用RemoteVIEws在Myappwidgetprovider的onUpdate()方法中为Botton绑定监听器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android控件AppWidgetProvider使用方法详解全部内容,希望文章能够帮你解决Android控件AppWidgetProvider使用方法详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1144588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存