OnResume начинает вызываться, когда приложение находится в фоновом режиме при запускеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 OnResume начинает вызываться, когда приложение находится в фоновом режиме при запуске

Сообщение Anonymous »

В Android 14, если я запускаю приложение, когда устройство заблокировано, оно вызывает onResume/onPause, пока приложение находится в фоновом режиме. Это вызывает проблемы с регистрацией намерения NFC, поскольку намерения NFC предполагают, что onResume вызывается, когда приложение переходит на передний план, но я получаю исключение при регистрации намерения, поскольку оно фактически находится в фоновом режиме. Какова правильная процедура определения того, могу ли я действительно зарегистрировать это намерение?
Из этого дампа потока видно, что это вызывается из собственного вызова onResume в Android:

Код: Выделить всё

java.lang.RuntimeException: Unable to resume activity {MYPACKAGE.MainActivity}: java.lang.IllegalStateException: Foreground dispatch can only be enabled/disabled when your activity is in foreground
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4963)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4996)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8223)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:977)
Caused by: java.lang.IllegalStateException: Foreground dispatch can only be enabled/disabled when your activity is in foreground
at android.os.Parcel.createExceptionOrNull(Parcel.java:3065)
at android.os.Parcel.createException(Parcel.java:3041)
at android.os.Parcel.readException(Parcel.java:3024)
at android.os.Parcel.readException(Parcel.java:2966)
at android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:810)
at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1487)
at MYPACKAGE.NfcUtil.registerForNfcIntents(NfcUtil.java:44)
at MYPACKAGE.onResume(BaseActivity.java:325)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1604)
at android.app.Activity.performResume(Activity.java:8743)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4953)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4996) 
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57) 
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) 
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2444) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:205) 
at android.os.Looper.loop(Looper.java:294) 
at android.app.ActivityThread.main(ActivityThread.java:8223) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:977) 
В предыдущих версиях Android этого не было. Я не знаю, вызывал ли он onResume или вызывал onResume, но не заботился о том, что он не был на переднем плане.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -on-launch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»