我正在构建一个可以按时计算屏幕的应用程序 这是我的实现,我无法弄清楚do-while循环中可能的部分
PowerManager powerManager=(PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn= powerManager.isScreenOn();
do{
}while(isScreenOn);
答案 0 :(得分:1)
您可以使用此答案的修改版本来节省时间:https://stackoverflow.com/a/8154095/4380308
修改版本:
您只需要2个字段: startTime
和 elapsedTime
如果您想开始录制时间,请将 elapsedTime
初始化为 0
和 startTime
到 System.currentTimeMillis()
调用onPause()
后,使用
elapsedTime
elapsedTime = elapsedTime + (System.currentTimeMillis() - startTime);
调用onResume()
后,将 startTime
初始化为 System.currentTimeMillis()
当您完成录制时间时,时间
elapsedTime = elapsedTime + (System.currentTimeMillis() - startTime);
除了onPause()
和onResume()
,您可能希望在 startTime
为false时重新初始化 isScreenOn
循环被破坏,直到 isScreenOn
再次为真,或者您决定使用什么实现来确定何时记录时间和不记录时间。