如何计算Android设备的屏幕时间

时间:2014-12-21 05:49:44

标签: java android do-while

我正在构建一个可以按时计算屏幕的应用程序 这是我的实现,我无法弄清楚do-while循环中可能的部分

PowerManager powerManager=(PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn= powerManager.isScreenOn();
do{

}while(isScreenOn);

1 个答案:

答案 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 再次为真,或者您决定使用什么实现来确定何时记录时间和不记录时间。