lingochamp / lingochamp/FileDownloader

startForegroundService() not allowed due to mAllowStartForeground false

Open
#1,412 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
11.1k
Forks
2.2k
PR merge metrics
No merged PRs in 30d

Description

Need to adopt Android 12 behavior changes, can't start foreground service from the background.

```
Fatal Exception: android.app.ForegroundServiceStartNotAllowedException: startForegroundService() not allowed due to mAllowStartForeground false:
service messenger.MainActivity.launcher.home.screen/com.liulishuo.filedownloader.services.FileDownloadService$SharedMainProcessService
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:54)
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:50)
at android.os.Parcel.readParcelable(Parcel.java:3345)
at android.os.Parcel.createExceptionOrNull(Parcel.java:2432)
at android.os.Parcel.createException(Parcel.java:2421)
at android.os.Parcel.readException(Parcel.java:2404)
at android.os.Parcel.readException(Parcel.java:2346)
at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:6968)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1927)
at android.app.ContextImpl.startForegroundService(ContextImpl.java:1893)
at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:798)
at g7.d.a(FileDownloadServiceSharedTransmit.java:8)
at g7.d.x099(:1)
at g7.c.x099(:2)
at g7.g.x022(FileDownloader.java:3)
at mymessenger.messaging.module.ui.main.MainFragment.onCreate(MainFragment.java:2)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:6)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:5)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:21)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:3)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:57)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:4)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(:4)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:6)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:1)
at com.android.launcher3.BaseActivity.onStart(BaseActivity.java:2)
at com.android.launcher3.BaseDraggingActivity.onStart(BaseDraggingActivity.java:1)
at com.android.launcher3.Launcher.onStart(Launcher.java:2)
at my.MainActivity.onStart(MainActivityLauncher.kt:1)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1455)
at android.app.Activity.performStart(Activity.java:8315)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4060)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Android 12 foreground-service behavior and trace the call from MainFragment.onCreate through FileDownloader.java and FileDownloadServiceSharedTransmit.java. Reproduce the reported ForegroundServiceStartNotAllowedException and verify that the affected startup path no longer attempts an unallowed background service start.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.