检查应用程序被聚焦的时间有多久

我想检查应用程序最小化了多长时间,onWindowFocusChanged(boolean hasFocus)但不知道如何。


这就是我尝试过的。


private long startTime = 0;

@Override

    public void onWindowFocusChanged(boolean hasFocus) {

        super.onWindowFocusChanged(hasFocus);


        if(hasFocus){

            long time = System.currentTimeMillis() - starTime;

            //300.000 ms = 5 min

            if(time > startTime + 300000)

            {

                Intent intent = new Intent(this, LoginActivity.class);

                startActivity(intent);

            }

        }

        else

        {

            starTime = System.currentTimeMillis();

        }

    }

我希望它在失去焦点时开始计数。然后当它再次获得焦点时,它应该检查是否超过 5 分钟。


如果为 false:重置计时器/不执行任何操作

如果为 true:加载登录活动。


蝴蝶不菲
浏览 70回答 1
1回答

慕盖茨4494581

为了避免出现问题,首先要设置startTimeinonCreate方法的初始值:    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        startTime = System.currentTimeMillis();    }然后将您的变量重命名long time为long timeDifference,当名称更具描述性时,您会看到您的条件已损坏,因此您的: if(timeDifference > startTime + 300000)使用以下内容就足够了: if(timeDifference > 300000)请记住,您可以使用调试来逐步分析每个变量的当前状态。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java