currentExpireTime is initialized as System.currentTimeMillis() + expireTime.get()

But I see your point, it will always load again if disabled, as the above will be lower than System.currentTimeMillis.

Let me review it.