Как запросить API с использованием модернизации на переднем плане в Android 12 (API 31)?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как запросить API с использованием модернизации на переднем плане в Android 12 (API 31)?

Сообщение Anonymous »

Мое приложение имеет особое требование загрузки файлов в качестве многоуровневого, используя модернизацию и Livedata в фоновом режиме (навигация приложения работает при загрузке данных на сервер.). Приложение требует цепных сетевых запросов на основаниях ответа, который он получает. Я использовал службу переднего плана для сетевых запросов. Эта процедура хорошо работает в Android 9,10,11. < /p>

uploadfragment.kt
< /blockquote>
class UploadFragment : BaseFragment() {

....

private fun uploadFilesToServer() {
val intent = Intent(requireActivity(), MyFileUploadingService::class.java)
ContextCompat.startForegroundService(requireActivity(), intent)
}
}
< /code>

fileuploadservice.kt
< /blockquote>
class FileUploadService : LifecycleService() {

....

private fun registerObservers() {
viewModel?.uploadLiveData!!.observe(this) { response ->
val dataResponse: DataUploadResponse = response.responseBody!!.data!!
if (dataResponse.error == null) {
....
// Repeat
} else {
stopSelf()
}
}
}

}
< /code>

Я получает ошибку < /strong> во время наблюдения за ответом с использованием livedata. < /p>
< /blockquote>
val dataResponse: DataUploadResponse = response.responseBody!!.data!!
< /code>

log ошибок < /p>
< /blockquote>
2022-08-24 13:08:59.792 26140-26140/com.myapp.demo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp.demo, PID: 26140
java.lang.NullPointerException
at com.myapp.demo.service.FileUploadService$registerObservers$1.onChanged(FileUploadService.kt:242)
at com.myapp.demo.service.FileUploadService$registerObservers$1.onChanged(FileUploadService.kt:54)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveData$1.run(LiveData.java:93)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)


Подробнее здесь: https://stackoverflow.com/questions/734 ... d-12api-31
Ответить

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

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

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

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

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