How long is the “JobService execution time limit” mentioned in Android's JobIntentService docs?
In practice, it seems to be 10 minutes. I originally determined that by testing, but IIRC somebody pointed out the limit in the source code.
Is this a time limit I should simply not be concerned about?
If you are really sure that your work will be done in less time, yes, at least for the time being.
Is it undocumented?
Yes.
Or is the execution time limit not/no longer existing?
It existed the last time I tested it.
Or will I have to redesign my services in a way that they can be interrupted and restarted at any given point in time?
Well, ideally, yes, particularly if you are using any constraints beyond time. For example, if you say that your job requires a network connection, and the device loses connectivity, your job will be stopped. That could occur well before the 10-minute time period elapses.
Best practices?
Avoid periodic background work to the greatest extent possible.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…