2014年8月30日 星期六

Android - 模擬LINE螢幕鎖功能

前言...............

最近公司接了一個專案

因為資料內容不能隨便給能看見

於是就要求了類似LINE的螢幕鎖

像這樣
這時我第一個想到的是 : 用activity life cycle 來做操作

於是我就在每個可能會鎖到的activity,fragment 都加入一個共通的boolean 來做判斷

這時發現只用onResume跟onStop還不夠,還要從onCreate跟onActivityResult來下手才行

到最後成功了!!  

可是程式碼醜到不行......萬一加了新的activity還要加入一堆判斷

我根本就違反了 Single responsibility principle (SOLID),

維護也變得相當困難,下一個看你程式碼的人根本不知道你在幹嘛

然後我就想到了otto  ,只要regist,其他完全不用理它是怎麼實做的

所以我今天就做出了一個 screenLocker 來達到隱藏實做細節的目的