我想检查应用程序最小化了多长时间,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)
请记住,您可以使用调试来逐步分析每个变量的当前状态。
添加回答
举报
0/150
提交
取消