掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
下面文章著重進(jìn)行介紹下什么是Android手機(jī)系統(tǒng),在熟知Android手機(jī)系統(tǒng)之前,先讓我們熟知下什么是Android?所謂的Android:Android 包括一個(gè)被 Android 系統(tǒng)中各種不同組件所使用的 C/C++ 庫集。

主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等多方位專業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類型的建設(shè)項(xiàng)目的能力。
正如前面提到的,AppWidgetProviderInfo類中的配置值是不變的,因?yàn)閡pdateTimeMillis值就在這個(gè)類中。任何有AppWidgetProviderInfo的Widget實(shí)例,只要設(shè)置了這個(gè)值,Widget就會根據(jù)其頻率更新。
沒有辦法修改它,因?yàn)檫@個(gè)應(yīng)用程序應(yīng)該讓用戶配置Widget中圖片刷新的頻率,因此你必須自動動手實(shí)現(xiàn)。Android手機(jī)系統(tǒng)是最常用的更新機(jī)制,因?yàn)樗С种貜?fù)通知,這些通知是將被觸發(fā)的簡單的PendingIntent對象。
你可能會想你可以創(chuàng)建一個(gè)具有AppWidgetManager.ACTION_APPWIDGET_UPDATE的Intent對象,然后給特定的Widget標(biāo)識符設(shè)置額外的值。接著你就可以通過調(diào)用AlarmManager的setRepeating()方法,采用調(diào)度機(jī)制反復(fù)地更新,遺憾的是,這種做法行不通。
Android手機(jī)系統(tǒng)反復(fù)使用Intents匹配行為和方案值,那些“額外的”值是不會拿去對比的。實(shí)際上,解決方案非常簡單:首先為你的Widget定義一個(gè)方案,然后用它定義唯一的Intent實(shí)例。下面的代碼片段顯示如何實(shí)現(xiàn)這個(gè)目標(biāo):
在ImagesWidgetConfiguration Activity中你會發(fā)現(xiàn)前面的代碼,manifest文件顯示塊處理這個(gè)特定的scheme。你也需要在AppWidgetProvider接口的onDeleted()方法內(nèi)停止重復(fù)的警報(bào)。最后,當(dāng)手機(jī)重啟后,更新調(diào)度也必須重啟。
在AppWidgetProvider的onReceive()方法內(nèi)提供了一個(gè)簡單的解決方案,首先,檢查更新行為,如果它是一個(gè)更新。確保它不包含scheme值,如果它不是更新,那么調(diào)度AlarmManager 的PendingIntent不會觸發(fā)這個(gè)行為,在這種情況下,檢查每個(gè)Widget標(biāo)識符是否有一個(gè)配置選項(xiàng)值。
如果沒有,那么在配置Widget之前,你知道這個(gè)更新行為被接收到。但如果選項(xiàng)值有效,那么你知道可以調(diào)度PendingIntent,在onReceive()方法中你可以看到完整的邏輯實(shí)現(xiàn)。這個(gè)方案允許多個(gè)Widget同時(shí)顯示,如圖2所示。更新也可以以不同的頻率進(jìn)行,每個(gè)顯示的圖片是從圖片集中隨機(jī)選擇的。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流