什么是AppWidget
AppWidget 即桌面小部件,也叫桌面控件,就是能直接顯示在Android系統(tǒng)桌面上的小程序,先看圖:
圖中我用黃色箭頭指示的即為AppWidget,一些用戶使用比較頻繁的程序,可以做成AppWidget,這樣能方便地使用。典型的程序有時(shí)鐘、天氣、音樂播放器等。AppWidget 是Android 系統(tǒng)應(yīng)用開發(fā)層面的一部分,有著特殊用途,使用得當(dāng)?shù)幕?,的確會(huì)為app 增色不少,它的工作原理是把一個(gè)進(jìn)程的控件嵌入到別外一個(gè)進(jìn)程的窗口里的一種方法。長按桌面空白處,會(huì)出現(xiàn)一個(gè) AppWidget 的文件夾,在里面找到相應(yīng)的 AppWidget ,長按拖出,即可將 AppWidget 添加到桌面,
如何開發(fā)AppWidget
AppWidget 是通過 BroadCastReceiver 的形式進(jìn)行控制的,開發(fā) AppWidget 的主要類為 AppWidgetProvider, 該類繼承自 BroadCastReceiver。為了實(shí)現(xiàn)桌面小部件,開發(fā)者只要開發(fā)一個(gè)繼承自 AppWidgetProvider 的子類,并重寫它的 onUpdate() 方法即可。重寫該方法,一般來說可按如下幾個(gè)步驟進(jìn)行:
1、創(chuàng)建一個(gè) RemoteViews 對(duì)象,這個(gè)對(duì)象加載時(shí)指定了桌面小部件的界面布局文件。
2、設(shè)置 RemoteViews 創(chuàng)建時(shí)加載的布局文件中各個(gè)元素的屬性。
3、創(chuàng)建一個(gè) ComponentName 對(duì)象
4、調(diào)用 AppWidgetManager 更新桌面小部件。
下面來看一個(gè)實(shí)際的例子,用 Android Studio 自動(dòng)生成的例子來說。(注:我用的是最新版的 AS 2.2.3,下面簡稱 AS。)
新建了一個(gè) HelloWorld 項(xiàng)目,然后新建一個(gè) AppWidget ,命名為 MyAppWidgetProvider,按默認(rèn)下一步,就完成了一個(gè)最簡單的AppWidget的開發(fā)。運(yùn)行程序之后,將小部件添加到桌面。操作步驟和默認(rèn)效果如下:
我們看看 AS 為我們自動(dòng)生成了哪些代碼呢?對(duì)照著上面說的的步驟我們來看看。
首先,有一個(gè) MyAppWidgetProvider 的類