本節書摘來自異步社群《精通android 5 多媒體開發》一書中的第22章,第22.2節開發屏保程式的原理,作者 王石磊,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
22.2 開發屏保程式的原理
精通android 5 多媒體開發
在android系統中開發一個屏保程式,其開發原理比較簡單,具體說明如下所示。
(1)首先準備一個service,當然這個service在主activity中啟動;然後在service中注冊一個receiver,該receiver 監聽系統的screen off(即螢幕關閉)事件。當然在service中要關閉原有的屏保(關閉系統屏保需要再配置檔案中獲得權限)。
(2)然後在方法onreceive中啟動自己的屏保 activity。在此需要注意,事件screen off不能在配置檔案androidmanifest.xml中注冊,receiver必須在java代碼中聲明和注冊。
根據上述原理,我們開發出一個簡單的屏保程式,具體實作流程如下所示。
(1)定義如下兩個變量來關閉系統原有屏保。
在此可以看到,在receiver的onreceive()函數中啟動了一個屏保activity。
(4)在配置檔案中申請權限,具體代碼如下所示。
經過上述操作之後,屏保activity設計完成。
在此我們可以将activity設定為全屏顯示,具體代碼如下所示。
在此需要注意,必須将如下代碼放在全屏代碼之後,否則會無效。
setcontentview(r.layout.main);
我們可以重寫onkeydown()函數,目的是通過任意鍵來關閉屏保activity,具體代碼如下所示。