Background startForeground() improvement.
Previously Service.startForeground() can be called from a background service and startForeground()/stopForeground() can be called repeatly from background. The BG-FGS-launch will add more restriction on this. 1. If the first startForeground() call is more than 10 seconds (can be configured by DeviceConfig key "fgs_start_foreground_timeout") after the Context.startService() call, check the service's app proc state and set mAllowWhileInUsePermissionInFgs and mAllowStartForeground flags again. 2. At Service.stopForeground() call, mAllowWhileInUsePermissionInFgs and mAllowStartForeground flags should be reset to false so FGS while-in-use permission and FGS BG start is not allowed. 3. After Context.startForegroundService()(or Context.startService()) -> Service.startForeground() -> Service.stopForeground(), the second or more times Service.startForeground() is called, check the service's app proc state and set mAllowWhileInUsePermissionInFgs and mAllowStartForeground flags again. Bug: 183204439 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java#testStartForegroundTimeout Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java#testSecondStartForeground Change-Id: Idc88f274c7a323d175d65bb47eca041772ae9bb7
Loading
Please register or sign in to comment