知識拓展:看門狗後台一直在運行,這樣是比較耗電的。
我們要優化的的話怎麼做呢?
在看門狗服務裡,監聽鎖屏事件,如果鎖屏了我就把看門狗停止(flag = false;);屏幕開啟了,我就讓看門狗開始工作啟動服務并且flag = true;;
避免一次輸入密碼了不再輸入;防止别人在我使用的時候,接着使用不用輸入密碼的情形;
也可以在鎖屏的時候把mSkipPackageName賦值為空就行了。
利用activity啟動模式修複密碼輸入bug1. 演示bug(進入手機衛士,按home退到後台,然後再打開加鎖app,進入後發現跳轉到手機衛士頁面)
2. 畫圖分析,正常情況下的任務棧和bug時的任務棧圖;
3. 解決問題;在功能清單文件EnterPwdActivity加上字段
<activity android:name="com.itheima.mobilesafe.EnterPwdActivity" android:launchMode="singleInstance"/>
4. 然後再畫圖分析正确的任務棧;
隐藏最近打開的activity長按小房子鍵:彈出曆史記錄頁面,就會列出最近打開的Activity;
1. 演示由于最近打開的Activity導緻的Bug;
2. 容易暴露用戶的隐私
最近打開的Activity,是為了用戶可以很快打開最近打開的應用而設計的;2.2、2.3普及後就把問題暴露出來了,很容易暴露用戶的隐私。比如你玩一些日本開發的遊戲:吹裙子、扒衣服這類遊戲。你正在玩這些有些,這個時候,爸媽或者大學女輔導員過來了,趕緊按小房子,打開背單詞的應用,這時大學女輔導員走過來說,幹嘛呢,把手機交出來,長按一下小房子鍵,這個時候很尴尬的事情就産生了。
A:低版本是無法移除的。低版本記錄近8個;想要隐藏隐私,打開多個擠出去;
B:4.0以後高版本就可以直接移除了。考慮用戶呼聲比較高。
3. 設置不在最近任務列表顯示activity
<activity android:excludeFromRecents="true" android:name="com.itheima.mobilesafe.EnterPwdActivity" android:launchMode="singleInstance" />
4. 在裝有騰X管家的模拟器演示騰X管理的程序鎖功能;也沒用現實最近的Activity,它也是這樣做的。
騰訊管家和手機衛士同時加鎖對比騰訊手機管家會更快一些, 所以我們需要再進一步優化手機衛士。
1.縮短每次巡邏時間
//将100改為20 try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); }
2.不頻繁調用數據庫
從數據庫中讀取所有已加鎖應用列表,每次從集合中查詢判斷
mLockedPackages = mDao.getInstance(this).findAll();// 查詢所有已加鎖的應用列表 // if (mDao.find(packageName)) { // 查看當前頁面是否在加鎖的數據庫中 if (mLockedPackages.contains(packageName)) {}
3.監聽數據庫變化, 更新集合
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!