Как отправить сообщение из одной темы в основную тему в Котлине?

Я уверен, что это невозможно. Внешний SVG не является частью DOM в способе встроенного SVG, и я не верю, что вы можете получить доступ к дереву SVG DOM из загружаемого документа.

Что вы можете do загружает SVG как XML, используя запрос AJAX, и вставляет его в DOM в качестве встроенного SVG, после чего вы можете ходить и манипулировать. Этот пример D3 демонстрирует технику. Я думаю, что используемая здесь функция d3.xml() более или менее эквивалентна jQuery $.ajax() с dataType: "xml".

0
задан MrCurious 18 January 2019 в 07:30
поделиться

2 ответа

Простой способ в Kotlin - использовать сопрограммы и приостанавливать функции

class YourClass : CoroutineScope {

    // context for main thread
    override val coroutineContext: CoroutineContext
        get() = Dispatchers.Main + Job()

    fun toDoSmth() {
        launch {
            withContext(Dispatchers.IO) {
              // task(1) do smth in another thread
            }
              // do smth in main thread after task(1) is finished
        }
    }
}

. Читайте также о Диспетчерах

.
0
ответ дан Artem Botnev 18 January 2019 в 07:30
поделиться

Обработка сообщений строго связана с Android . Но на самом деле вы не хотите отправлять сообщение обработчику. На самом деле вы запускаете код только в этом потоке. Таким образом, вместо того, чтобы использовать сообщения, которые вы делаете, вы должны просто позвонить post(Runnable) :

val uiThreadHandler = Handler(Looper.getMainLooper())

uiThreadHandler.post {
    ...
}

Чтобы абстрагировать это еще дальше, вы можете использовать Kotlin Coroutines с расширением Android для Dispatchers.Main:

GlobalScrope.launch(Dispatchers.Main) {
    ...
}

Блок будет запланирован в главном потоке Android . Если вы ничего не приостанавливаете в самом блоке, что может иметь место из-за того, что вы не используете сопрограмм прямо сейчас, вам не нужно беспокоиться об отмене Job возвращается из launch.

0
ответ дан tynn 18 January 2019 в 07:30
поделиться
Другие вопросы по тегам:

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