169 похожих чатов

Привет, парни, подскажите насколько длительные операции можно проделывать в onDestroy

фрагмента?

Я тут пытался реализовать классический переключатель типа добавить\удалить из избранного, который соответственно будет добавлять или удалять из бд запись. Но решил немного оптимизировать, и вместо того чтобы повесить настоящие функции добавления\удаления, повесил на этот переключатель изменение булева флага, по состоянию которого в onStop уже производится запрос в бд. И все прекрасно работало, но так вышло, что именно onStop мне использовать нельзя. Повесил на onDestroy, в итоге перестало отрабатывать. Сама вызываемая функция находится во вьюмолели, которая привязана к фрагменту. Я так понял модель умирает ещё до того как успеет выполниться запрос?

8 ответов

19 просмотров

В ондестрой ничего вообще не надо проделывать примерно никогда 1. Никаких гарантий его вызова 2. Через сколько то (м)с все что внутри фрагмента станет null. Или не станет

Ondetach или лучше onDestroyView пробуй

В сиысле проделывать длительного

Kirill- Автор вопроса

Детач пробовал, все одно и то же. Дестройвью не подходит по тем же причинам что и он стоп - мне нужно исключить случай вызова, когда я перехожу в другой стек фрагментов.

Kirill- Автор вопроса

Так, кажется я плохо помню жизненный цикл, но дестройВью кажется помогло)))

Оно сразу перед детачем

Kirill- Автор вопроса

Проверил - все равно не отрабатывает при закрытии фрагмента.

Kirill- Автор вопроса

В общем потестил, иногда успевает отработать, иногда нет. Рандом.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта