国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android控件AppWidgetProvider使用方法詳解

2019-10-22 18:28:49
字體:
來源:轉載
供稿:網友

介紹

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綁定監聽器

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漳浦县| 桐乡市| 永靖县| 梅河口市| 长顺县| 湖南省| 临沂市| 岚皋县| 双鸭山市| 申扎县| 鄂伦春自治旗| 靖州| 永昌县| 浦城县| 镇远县| 关岭| 黎城县| 淄博市| 亳州市| 辽源市| 巴林左旗| 宣城市| 秦安县| 海阳市| 尉犁县| 兰溪市| 务川| 故城县| 德保县| 彰化县| 焦作市| 江油市| 乌鲁木齐市| 岳池县| 武强县| 乃东县| 衡水市| 黄龙县| 巩义市| 任丘市| 筠连县|