中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android控件AppWidgetProvider使用方法詳解

發布時間:2020-09-07 13:31:19 來源:腳本之家 閱讀:260 作者:丶白澤 欄目:移動開發

介紹

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五寨县| 东台市| 南开区| 睢宁县| 桐庐县| 合山市| 南昌市| 丰台区| 德昌县| 兴和县| 南乐县| 张家川| 岗巴县| 赞皇县| 沈丘县| 渝中区| 股票| 黎城县| 宜兴市| 汉寿县| 剑阁县| 达州市| 湘潭市| 湖北省| 邳州市| 陵水| 攀枝花市| 河源市| 东台市| 手机| 清远市| 乌拉特中旗| 满城县| 治县。| 明星| 牡丹江市| 渭南市| 上栗县| 惠东县| 张家口市| 桃源县|