創(chuàng)建Android系統(tǒng)步驟簡介
Android, OPhone OS作為手機開發(fā)的后起之秀, 肯定不會錯過這份蛋糕的分享,現(xiàn)在我們就以ANDROID SDK 里面自帶的貪吃蛇作為例子, 去看看這個貪吃蛇是怎么去開發(fā)。
你可能會想你可以創(chuàng)建一個具有AppWidgetManager.ACTION_APPWIDGET_UPDATE的Intent對象,然后給特定的Widget標識符設(shè)置額外的值接著你就可以通過調(diào)用AlarmManager的setRepeating()方法,采用調(diào)度機制反復(fù)地更新,遺憾的是,這種做法行不通,Android系統(tǒng)反復(fù)使用Intents匹配行為和方案值。
那些“額外的”值是不會拿去對比的。實際上,解決方案非常簡單:首先為你的Widget定義一個方案,然后用它定義唯一的Intent實例。下面的代碼片段顯示如何實現(xiàn)這個目標。
在ImagesWidgetConfiguration Activity中你會發(fā)現(xiàn)前面的代碼,manifest文件顯示塊處理這個特定的scheme。你也需要在AppWidgetProvider接口的onDeleted()方法內(nèi)停止重復(fù)的警報。最后,當手機重啟后,更新調(diào)度也必須重啟。
在AppWidgetProvider的onReceive()方法內(nèi)提供了一個簡單的解決方案,首先,檢查更新行為,如果它是一個更新,確保它不包含scheme值,如果它不是更新。那么調(diào)度AlarmManager 的PendingIntent不會觸發(fā)這個行為,在這種情況下,檢查每個Widget標識符是否有一個配置選項值。
如果沒有,那么在配置Widget之前,你知道這個更新行為被接收到。但如果選項值有效,那么你知道可以調(diào)度PendingIntent,在onReceive()方法中你可以看到完整的邏輯實現(xiàn)。這個方案允許多個Widget同時顯示,如圖2所示。更新也可以以不同的頻率進行,每個顯示的圖片是從圖片集中隨機選擇的。
至此,你已經(jīng)看到了如何在Android系統(tǒng)上創(chuàng)建一個基本的Widget,每個Widget實例按獨立的方式調(diào)度,由用戶自行配置。但App Widge框架不直接支持,因此需要自動動手編碼實現(xiàn)。以后我將在此Widget基礎(chǔ)上講解如何從互聯(lián)網(wǎng)上下載圖片,以及如何直接在屏幕上控制圖片,敬請期待吧!
【編輯推薦】