久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

java - 安卓實(shí)現(xiàn)熄屏功能。

瀏覽:124日期:2024-01-09 11:28:17

問題描述

在APP中定義一個(gè)時(shí)間(假設(shè)為5分鐘),記錄兩次操作APP之間的時(shí)間間隔,如果大于之前定義的時(shí)間,則APP端實(shí)現(xiàn)發(fā)出命令,手機(jī)屏幕熄滅。該功能要如何實(shí)現(xiàn)?

問題解答

回答1:

第一點(diǎn)是鎖屏這個(gè)功能吧,可以參考:https://github.com/chniccs/Lo...這個(gè)小項(xiàng)目就是鎖屏功能的實(shí)現(xiàn),代碼量很少。

另外一點(diǎn)就是看你怎么定義每次操作,這里將把一個(gè)activity顯示到前臺(tái)當(dāng)作一次操作,你也可以重寫觸摸監(jiān)聽去定義一些觸摸操作為一次操作。1、寫個(gè)BaseActivity,在onResume(這里用這個(gè)代表一次操作)中發(fā)出一個(gè)延時(shí)消息(廣播或者其它handler),并記錄當(dāng)前時(shí)間(存儲(chǔ)在自定義Application中或者一個(gè)全局單例或者持久化存儲(chǔ))2、根據(jù)前面發(fā)送延時(shí)消息的方式,如廣播,在收到發(fā)出的廣播消息后,取當(dāng)前時(shí)間值與 1 步中記錄的時(shí)間值進(jìn)行比較,如果小于定義的時(shí)間值,則再次取兩次時(shí)間值(存儲(chǔ)的與當(dāng)前的)的差值作為延時(shí)再發(fā)出一個(gè)廣播。當(dāng)下次再收到廣播時(shí),再進(jìn)行判斷,如果大于等于時(shí)間值,就調(diào)用鎖屏。

說明:第 2 步中為什么要取差值而不是重新發(fā)一個(gè)固定延時(shí)的廣播,這是因?yàn)樵诘谝淮伟l(fā)送廣播后,可能你會(huì)進(jìn)行一些操作,這些操作就后續(xù)的,也就是說當(dāng)你收到延時(shí)廣播時(shí),最后一次操作的時(shí)間并不是發(fā)送廣播時(shí)記錄的時(shí)間,而是真實(shí)最后一次操作的時(shí)間。所以在每次操作后都需要對(duì)記錄的時(shí)間值進(jìn)行更新操作。

差值計(jì)算:定義的無操作固定最大時(shí)間 - (當(dāng)前時(shí)間 - 最后一次操作時(shí)間)

回答2:

采用Handler的postDelayed(Runnable, long)方法1.定義一個(gè)Handler類

Handler handler=new Handler(); Runnable runnable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub //要做的事情 handler.postDelayed(this, 2000); } };

2.啟動(dòng)計(jì)時(shí)器

handler.postDelayed(runnable, 2000);

3.停止計(jì)時(shí)器

handler.removeCallbacks(runnable);

大概就是這么一個(gè)路數(shù)吧,時(shí)間自己決定咯

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 玖玖玖影院 | 精品一区av | 天天曰| 婷婷在线免费视频 | 国产艳妇av视国产精选av一区 | 中文字幕91 | 日韩欧美精品一区 | 国产三区在线成人av | 欧美视频三区 | 国产一级在线 | 亚洲 欧美 激情 另类 校园 | 精品中文久久 | 一a级毛片 | 欧美日在线 | 日本久久久久久久久久久久 | 国产精品日日做人人爱 | 国产精品自产拍在线观看 | www.日韩| 午夜视频在线播放 | 午夜精品久久久久久久白皮肤 | 日日射天天干 | 九九热精品在线 | 黄色三及毛片 | 美女网站视频免费黄 | 一区二区在线免费观看 | heyzo 在线| 国产精品免费一区二区三区四区 | 另类天堂av| 欧美成人黄色 | 日日精品 | 国产精品美女久久久久久免费 | 天天干网| 久久国产精品99久久久久久老狼 | 一级片网 | 精品久久一二三区 | 欧美精品一区二区三区蜜桃视频 | 久久久网站 | 欧美亚洲国产一区 | 国产精品99久久久久久久vr | 午夜在线电影 | 精品久久久久久久久久久 |