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