我想檢查應用程序最小化了多長時間,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
提交
取消