97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> 新聞動態(tài) >> Android資料 >> Android App Widgets開發(fā)  
 
Android App Widgets開發(fā)
分享到:

App Widgets在Android中是作為嵌入到其他應(yīng)用中的小的應(yīng)用視圖存在的,這在進行背景音樂播放、社交網(wǎng)絡(luò)信息瀏覽、天氣狀況查詢、交通狀況查詢等需要定期更新的業(yè)務(wù)時顯得非常有用。駐留了App Widgets的應(yīng)用組件稱為App Widgets宿主。

為了創(chuàng)建一個App Widget,開發(fā)者需要完成3個方面的工作:

1)定義AppWidgetProviderInfo對象

定義一個AppWidgetProviderInfo對象。為了描述App Widget的屬性,如布局、刷新頻率和AppWidgetProvider,需要在XML文件中定義一個AppWidgetProviderInfo對象。

下面是samples\ApiDemos\res\xml\appwidget_provider.xml中的一個例子:

代碼1-1 appwidget_provider.xml

< appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
      android:minWidth="60dp"
      android:minHeight="30dp"
      android:updatePeriodMillis="86400000"
      android:initialLayout="@layout/appwidget_provider"
      android:configure="com.example.android.apis.appwidget.ExampleAppWidgetConfigure">
    < /appwidget-provider>

在samples\ApiDemos\ AndroidManifest.xml中,通過receiver::Resource屬性設(shè)置數(shù)據(jù)源:

代碼1-2 AndroidManifest.xml

< receiver android:name=".appwidget.ExampleAppWidgetProvider">
        < meta-data android:name="android.appwidget.provider" //組件名
            android:resource="@xml/appwidget_provider" /> //數(shù)據(jù)源
        < intent-filter>
            < action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        < /intent-filter>
    < /receiver>

2)重載App Widget接口

重載App Widget的基本接口,如AppWidgetProvider:: onUpdate()、AppWidgetProvider:: onDeleted ()、AppWidgetProvider:: onEnabled ()、AppWidgetProvider:: onDisabled ()等,實現(xiàn)可參考ExampleAppWidgetProvider.java。

3)定義App Widget的布局

定義App Widget的初始布局,如samples\ApiDemos\res\layout\ appwidget_configure.xml、samples\ApiDemos\res\layout\appwidget_provider.xml等。

另外,為了顯示App Widget,需要創(chuàng)建一個Activity,在實際的開發(fā)中,App Widget通常位于Home Screen中。需要注意的是,由于App Widget和數(shù)據(jù)源通常位于不同的進程中,為了更新數(shù)據(jù),需要用到RemoteViews類。

代碼1-3 updateAppWidget

static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,int appWidgetId, String titlePrefix)
    {
      Log.d(TAG, "updateAppWidget appWidgetId="+appWidgetId+"titlePrefix="+ titlePrefix);
      //通過getString()有利于字符串的本地化,可以通過java.util.Formatter提供格式字符串
      CharSequence text=context.getString(R.string.appwidget_text_format,
      ExampleAppWidgetConfigure.loadTitlePref(context, appWidgetId),
            "0x"+Long.toHexString(SystemClock.elapsedRealtime()));
      RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.appwidget_ provider); //創(chuàng)建RemoteViews
      views.setTextViewText(R.id.appwidget_text, text);
      appWidgetManager.updateAppWidget(appWidgetId, views); //通知Widget管理器
    }

App Widgets涉及的類包括android.appwidget.AppWidgetHost、android.appwidget. AppWidget HostView、android.appwidget.AppWidgetManager、android.appwidget.AppWidget Provider、android.appwidget.AppWidgetProviderInfo等。

 更多相關(guān)文章

·Android Intent激活組件
·Android Broadcast的使用
·詳解Android Service組件
·Android應(yīng)用組件Activity
·Android RPC管道文件系統(tǒng)