84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
在APP中定义一个时间(假设为5分钟),记录两次操作APP之间的时间间隔,如果大于之前定义的时间,则APP端实现发出命令,手机屏幕熄灭。该功能要如何实现?
业精于勤,荒于嬉;行成于思,毁于随。
第一点是锁屏这个功能吧,可以参考:https://github.com/chniccs/Lo...这个小项目就是锁屏功能的实现,代码量很少。
另外一点就是看你怎么定义每次操作,这里将把一个activity显示到前台当作一次操作,你也可以重写触摸监听去定义一些触摸操作为一次操作。1、写个BaseActivity,在onResume(这里用这个代表一次操作)中发出一个延时消息(广播或者其它handler),并记录当前时间(存储在自定义Application中或者一个全局单例或者持久化存储)2、根据前面发送延时消息的方式,如广播,在收到发出的广播消息后,取当前时间值与 1 步中记录的时间值进行比较,如果小于定义的时间值,则再次取两次时间值(存储的与当前的)的差值作为延时再发出一个广播。当下次再收到广播时,再进行判断,如果大于等于时间值,就调用锁屏。
说明:第 2 步中为什么要取差值而不是重新发一个固定延时的广播,这是因为在第一次发送广播后,可能你会进行一些操作,这些操作就后续的,也就是说当你收到延时广播时,最后一次操作的时间并不是发送广播时记录的时间,而是真实最后一次操作的时间。所以在每次操作后都需要对记录的时间值进行更新操作。
差值计算:定义的无操作固定最大时间 - (当前时间 - 最后一次操作时间)
采用Handler的postDelayed(Runnable, long)方法1.定义一个Handler类
Handler handler=new Handler(); Runnable runnable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub //要做的事情 handler.postDelayed(this, 2000); } };
2.启动计时器
handler.postDelayed(runnable, 2000);
3.停止计时器
handler.removeCallbacks(runnable);
大概就是这么一个路数吧,时间自己决定咯
第一点是锁屏这个功能吧,可以参考:https://github.com/chniccs/Lo...
这个小项目就是锁屏功能的实现,代码量很少。
另外一点就是看你怎么定义每次操作,这里将把一个activity显示到前台当作一次操作,你也可以重写触摸监听去定义一些触摸操作为一次操作。
1、写个BaseActivity,在onResume(这里用这个代表一次操作)中发出一个延时消息(广播或者其它handler),并记录当前时间(存储在自定义Application中或者一个全局单例或者持久化存储)
2、根据前面发送延时消息的方式,如广播,在收到发出的广播消息后,取当前时间值与 1 步中记录的时间值进行比较,如果小于定义的时间值,则再次取两次时间值(存储的与当前的)的差值作为延时再发出一个广播。当下次再收到广播时,再进行判断,如果大于等于时间值,就调用锁屏。
说明:第 2 步中为什么要取差值而不是重新发一个固定延时的广播,这是因为在第一次发送广播后,可能你会进行一些操作,这些操作就后续的,也就是说当你收到延时广播时,最后一次操作的时间并不是发送广播时记录的时间,而是真实最后一次操作的时间。所以在每次操作后都需要对记录的时间值进行更新操作。
差值计算:定义的无操作固定最大时间 - (当前时间 - 最后一次操作时间)
采用Handler的postDelayed(Runnable, long)方法
1.定义一个Handler类
2.启动计时器
3.停止计时器
大概就是这么一个路数吧,时间自己决定咯