Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2020 June 26

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
Но стоп, он же future_result понимает как отдельный поток в который вы можем что-то передать - а как мы тогда в него что-либо передадим, если всё в функции и есть то, что он потом уничтожит ?
про Future я кстати напутал, там коллбек передаётся внутрь файрбейса и хранится его механизмами, так что здесь код правильный и коллбек действительно вызовется позже;
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Он сначала тебе просто скажет сендинг, потом подгрузит, а со второго открытия по нормальному отдаст данные - есть пример успешного использования status в remote_config &
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
так что с коллбеком всё ок.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
а вот с int точно не ок — он умирает и тебе в коллбек приходит мусор
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Andrey Panchenko
а вот с int точно не ок — он умирает и тебе в коллбек приходит мусор
И вопрос, почему он умирает ? По идеи - я ведь правильно передаю ( как ещё туда передать ? )
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Andrey Panchenko
про Future я кстати напутал, там коллбек передаётся внутрь файрбейса и хранится его механизмами, так что здесь код правильный и коллбек действительно вызовется позже;
Он и вызывается, когда я вернулся из функции =))
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
Чтобы прокинуть в джаву, мне надо что он имел все данные JNIEnv и прочее - и тогда я могу из него вызвать java функцию - но я не могу в него ничего передать ( как я оттуда что-либо вызову ? ) и да, status не работает - он сначала пробежит и ничего не покажет, то есть, как закольцевать программу, чтобы он не вис, а дождался status == kFutureComplete что-то там - я так и не наш\л
чтобы не вис нужно использовать коллбек. иначе нужно делать цикл while и ждать пока статус станет нужным.
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
А мне надо в ней либо дождаться успешного ответа от
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
И вопрос, почему он умирает ? По идеи - я ведь правильно передаю ( как ещё туда передать ? )
потому что так устроен C++. Нужно или поменять область видимости этой переменной или создавать её на куче.
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Andrey Panchenko
чтобы не вис нужно использовать коллбек. иначе нужно делать цикл while и ждать пока статус станет нужным.
С этим циклом он просто на нём виснет и программа не идёт вперёд - он не посылает ничего и некуда, он вечно висит и показывает что kFuturePending
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Andrey Panchenko
потому что так устроен C++. Нужно или поменять область видимости этой переменной или создавать её на куче.
Ты говорить выдержками из учебников heap - куча =))
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
А, проблема да, наверное, он заканчивает функцию раньше чем вызывается callback - я понял, и потому когда callback берёт ссылку - там уже ничего нет - ты прав
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
в общем, вариантов у тебя немного — или прокидываешь коллбек с джавы и дёргаешь в OnCompletion или теребишь status
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Но проблему это не решает !
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
status не теребиться, вот в чём ужас
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
Но проблему это не решает !
ну, переменную нужно сделать там, где она не уничтожается.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
я просто не знаю логику твоего приложения, поэтому конкретный способ не подскажу
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Да, но тут сама логика
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Как раз логика - такая что я эту функцию дёргаю из kotlin
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
И по её завершению, он всё уничтожил - всё так, а грёбанный статус - не работает
источник