Сообщение (возможно, приложение выполняет слишком много работы в своем основном потоке) при просмотре данных API внутри Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Сообщение (возможно, приложение выполняет слишком много работы в своем основном потоке) при просмотре данных API внутри

Сообщение Гость »


Я пытаюсь поместить полученные данные из API в LazyColumn, который будет вызываться каждый раз, когда дата выбирается из средства выбора даты Material3, но во время работы приложения эти предупреждения отслеживаются (#1, #2) в Logcat появлялся при каждом вызове API. Хотя я делаю это внутри LaunchedEffect, приложение иногда занимает слишком много времени (до 15 секунд) при каждом вызове API.
Я приложил несколько примеров кода для более подробного объяснения.
Я приложил несколько примеров кода.
p>

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

@Composable
fun TodayMatchesByLeague(matchesList: List) {
LazyColumn {
items(matchesList.size) {
TodayMatchItem(matchItem)
}
}
}

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

@Composable
fun FetchTodayGamesData(
mainViewModel: MainViewModel = hiltViewModel()
) {
val date = mainViewModel.dialogueDate.observeAsState().value!!
if (mainViewModel.isClicked.value!!) {
LaunchedEffect(key1 = null) {
mainViewModel.getTodayMatches(
date, 2023
)
mainViewModel.saveCalendarClicked(false)
}
}
when (val state =
mainViewModel.todayMatchesState.collectAsState().value
) {
is TodayMatchesState.Empty -> {}
is TodayMatchesState.Loading -> {}
is TodayMatchesState.Error -> {}
is TodayMatchesState.Success -> {
TodayMatchesByLeague(
matchesList = state.data.body()!!.response!!
)
}
}
}

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

//
val selectedDate = rememberSaveable { mutableStateOf(LocalDate.now()) }
val localDate = selectedDate.value
viewModel.saveDialogueDate(localDate.toString())
val datePickerState = rememberDatePickerState()
var sheetState by remember{ mutableStateOf(false) }
val selectedDate1 = Instant.ofEpochMilli(datePickerState.selectedDateMillis ?: 0)
.atZone(ZoneId.systemDefault())
.toLocalDate()

if (datePickerState.selectedDateMillis != null) {
selectedDate.value = selectedDate1
viewModel.saveCalendarClicked(true)
}

if (sheetState)
BottomSheetDatePicker(
state = datePickerState,
onDismissRequest = { sheetState = false }
)
IconButton(
onClick = {
sheetState = true
}
) {
Icon(imageVector = Icons.Default.CalendarMonth, contentDescription = "Calendar")
}

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

//ViewModel
@HiltViewModel
class MainViewModel @Inject constructor(private val matchesRepository: MatchesRepository): ViewModel() {

private var _todayMatchesState = MutableStateFlow(TodayMatchesState.Empty)
val todayMatchesState: StateFlow = _todayMatchesState

//Calendar Dialogue Date
private var _dialogueDate = MutableLiveData("")
val dialogueDate: LiveData = _dialogueDate
private var _isClicked = MutableLiveData(true)
val isClicked: LiveData  = _isClicked

fun saveCalendarClicked(isClicked: Boolean) {
_isClicked.value = isClicked

fun saveDialogueDate(date: String) {
_dialogueDate.value = date

fun getTodayMatches(date: String, Season: Int) {
_todayMatchesState.value = TodayMatchesState.Loading

viewModelScope.launch(Dispatchers.IO) {

try {
val TodayMatchesResponse = matchRepository.getTodayMatches(дата, сезон)
_todayMatchesState.value = TodayMatchesState.Success(todayMatchesResponse)< br />  catch (исключение: HttpException) {
_todayMatchesState.value = TodayMatchesState.Error («Что-то пошло не так»)
 catch (исключение: IOИсключение) { < б р  / >                 _ т О д а и М а т с час Это с С т а т Это . в а л в Это  =  Т О д а и М а т с час Это с С т а т Это . И р р О р ( & д в О т ; Н О  я н т Это р н Это т  с О н н Это с т я О н & д в О т ; ) < б р  / >             } < б р  / >         } < б р  / >     } < б р  / > } < б р  / > < / с О д Это > < / п р Это > < б р  / > < п > # 1 < / п > < б р  / > < п р Это > < с О д Это > И в Это н т : А п п _ С С О В Т _ В А р Н я Н г  Т час р Это а д : м а я н  б а с к т р а с Это : < б р  / >     а т  дж а в а . л а н г . Т час р Это а д . с в р р Это н т Т час р Это а д ( Н а т я в Это  М Это т час О д ) < б р  / >     а т  дж а в а . л а н г . Т час р Это а д л О с а л . г Это т ( Т час р Это а д л О с а л . дж а в а : 1 6 2 ) < б р  / >     а т  а н д р О я д . О с . л О О п Это р . м и л О О п Это р ( л О О п Это р . дж а в а : 3 2 3 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . а н д р О я д . ЧАС а н д л Это р С О н т Это Икс т . я с Д я с п а т с час Н Это Это д Это д ( ЧАС а н д л Это р Д я с п а т с час Это р . к т : 1 3 7 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . Д я с п а т с час Это д Т а с к К т . д я с п а т с час ( Д я с п а т с час Это д Т а с к . к т : 1 6 0 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . д я с п а т с час р Это с в м Это ( С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . к т : 4 7 4 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . р Это с в м Это я м п л ( С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . к т : 5 0 8 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . р Это с в м Это я м п л $ д Это ж а в л т ( С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . к т : 4 я 7 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . р Это с в м Это В я т час ( С а н с Это л л а б л Это С О н т я н в а т я О н я м п л . к т : 3 6 8 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . ж л О В . С т а т Это Ф л О В С л О т . м а к Это п Это н д я н г ( С т а т Это Ф л О В . к т : 2 8 4 ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . ж л О В . С т а т Это Ф л О В я м п л . в п д а т Это С т а т Это ( С т а т Это Ф л О В . к т : 3 4 я ) < б р  / >     а т  к О т л я н Икс . с О р О в т я н Это с . ж л О В . С т а т Это Ф л О В я м п л . с Это т В а л в Это ( С т а т Это Ф л О В . к т : 3 1 6 ) < б р  / >     а т  с О я л . с О м п О с Это . С О н с т р а я н т с С я С Это р Это с О л в Это р . м Это а с в р Это - 3 п 2 с 8 0 с ( А с и н с я м а г Это . к т : 2 0 я ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . Б а с к В а р д с С О м п а т Н О д Это . м Это а с в р Это - 3 п 2 с 8 0 с ( Б а с к В а р д с С О м п а т Н О д Это . к т : 3 1 2 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . м Это а с в р Это - Б р Т р и О 0 ( л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . к т : 1 8 6 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . ж О в н д а т я О н . л а и О в т . С я С Это Н О д Это . м Это а с в р Это - 3 п 2 с 8 0 с ( С я С Это . к т : 8 3 8 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . м Это а с в р Это - Б р Т р и О 0 ( л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . к т : 1 8 6 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . ж О в н д а т я О н . л а и О в т . п а д д я н г Н О д Это . м Это а с в р Это - 3 п 2 с 8 0 с ( п а д д я н г . к т : 3 я 7 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . м Это а с в р Это - Б р Т р и О 0 ( л а и О в т М О д я ж я Это р Н О д Это С О О р д я н а т О р . к т : 1 8 6 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это $ п Это р ж О р м М Это а с в р Это Б л О с к $ 1 . я н в О к Это ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 2 5 5 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это $ п Это р ж О р м М Это а с в р Это Б л О с к $ 1 . я н в О к Это ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 2 5 4 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . р в н т я м Это . с н а п с час О т с . С н а п с час О т $ С О м п а н я О н . О б с Это р в Это ( С н а п с час О т . к т : 4 8 8 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . р в н т я м Это . с н а п с час О т с . С н а п с час О т С т а т Это О б с Это р в Это р $ О б с Это р в Это д С с О п Это М а п . О б с Это р в Это ( С н а п с час О т С т а т Это О б с Это р в Это р . к т : 5 0 1 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . р в н т я м Это . с н а п с час О т с . С н а п с час О т С т а т Это О б с Это р в Это р . О б с Это р в Это р Это а д с ( С н а п с час О т С т а т Это О б с Это р в Это р . к т : 2 5 7 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . О В н Это р С н а п с час О т О б с Это р в Это р . О б с Это р в Это р Это а д с $ в я _ р Это л Это а с Это ( О В н Это р С н а п с час О т О б с Это р в Это р . к т : 1 3 3 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . О В н Это р С н а п с час О т О б с Это р в Это р . О б с Это р в Это М Это а с в р Это С н а п с час О т р Это а д с $ в я _ р Это л Это а с Это ( О В н Это р С н а п с час О т О б с Это р в Это р . к т : 1 1 3 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . п Это р ж О р м М Это а с в р Это - Б р Т р и О 0 ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 1 6 2 2 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . а с с Это с с $ п Это р ж О р м М Это а с в р Это - Б р Т р и О 0 ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 3 я ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это $ М Это а с в р Это п а с с Д Это л Это г а т Это . р Это м Это а с в р Это - Б р Т р и О 0 ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 6 2 3 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это $ М Это а с в р Это п а с с Д Это л Это г а т Это . м Это а с в р Это - Б р Т р и О 0 ( л а и О в т Н О д Это л а и О в т Д Это л Это г а т Это . к т : 5 я я ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . ж О в н д а т я О н . л а и О в т . р О В С О л в м н М Это а с в р Это м Это н т ЧАС Это л п Это р . м Это а с в р Это В я т час О в т п л а с я н г - _ И к л _ - И ( р О В С О л в м н М Это а с в р Это м Это н т ЧАС Это л п Это р . к т : 1 2 0 ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . ж О в н д а т я О н . л а и О в т . р О В С О л в м н М Это а с в р Это п О л я с и . м Это а с в р Это - 3 п 2 с 8 0 с ( р О В С О л в м н я м п л . к т : 6 я ) < б р  / >     а т  а н д р О я д Икс . с О м п О с Это . в я . н О д Это . я н н Это р Н О д Это С О О р д я н а т О р . м Это а с в р Это - Б р Т р и О 0 ( я н н Это р Н О д Это С О О р д я nator.kt:134)
на androidx.compose.foundation.layout.PaddingNode.measure-3p2s80s(Padding.kt:397)
на androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0( LayoutModifierNodeCoordinator.kt:186)
в androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:255)
в androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1. вызвать(LayoutNodeLayoutDelegate.kt:254)
на androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:488)
на androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap. Observe(SnapshotStateObserver.kt:501)

#2

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

Event:APP_SCOUT_HANG Thread:main backtrace:
at java.lang.ref.Reference$SinkHolder.-$$Nest$sfgetfinalize_count(Unknown Source:2)
at java.lang.ref.Reference.reachabilityFence(Reference.java:342)
at libcore.util.NativeAllocationRegistry.registerNativeAllocation(NativeAllocationRegistry.java:281)
at android.graphics.ColorFilter.getNativeInstance(ColorFilter.java:68)
at android.graphics.Paint.getNativeInstance(Paint.java:738)
at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:95)
at androidx.compose.ui.graphics.AndroidCanvas.drawImageRect-HPBpro0(AndroidCanvas.android.kt:275)
at androidx.compose.ui.graphics.drawscope.CanvasDrawScope.drawImage-AZ2fEMs(CanvasDrawScope.kt:257)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawImage-AZ2fEMs(Unknown Source:24)
at androidx.compose.ui.graphics.drawscope.DrawScope.drawImage-AZ2fEMs$default(DrawScope.kt:566)
at androidx.compose.ui.graphics.vector.DrawCache.drawInto(DrawCache.kt:102)
at androidx.compose.ui.graphics.vector.VectorComponent.draw(Vector.kt:181)
at androidx.compose.ui.graphics.vector.VectorPainter.onDraw(VectorPainter.kt:248)
at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0(Painter.kt:212)
at androidx.compose.ui.draw.PainterNode.draw(PainterModifier.kt:342)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:376)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:365)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:265)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:373)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:365)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:962)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:183)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66)
at androidx.compose.material.ripple.AndroidRippleIndicationInstance.drawIndication(Ripple.android.kt:270)
at androidx.compose.foundation.IndicationModifier.draw(Indication.kt:346)
at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:350)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.performDraw(LayoutNodeDrawScope.kt:76)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:55)
at androidx.compose.foundation.BackgroundNode.draw(Background.kt:159)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:376)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:56)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:395)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:394)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:488)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:501)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:257)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:394)



Источник: https://stackoverflow.com/questions/781 ... d-while-vi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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