为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蝴蝶不菲 2023-07-19 14:52:41
我想检查应用程序最小化了多长时间,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:加载登录活动。
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

为了避免出现问题,首先要设置startTimeinonCreate方法的初始值:


    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        startTime = System.currentTimeMillis();

    }

然后将您的变量重命名long time为long timeDifference,当名称更具描述性时,您会看到您的条件已损坏,因此您的:


 if(timeDifference > startTime + 300000)

使用以下内容就足够了:


 if(timeDifference > 300000)

请记住,您可以使用调试来逐步分析每个变量的当前状态。


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信