Должен ли я использовать код основной безопасности для запуска обратных вызовов в Android (Kotlin)?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Должен ли я использовать код основной безопасности для запуска обратных вызовов в Android (Kotlin)?

Сообщение Anonymous »


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

Пример кода

class ApiSocket(val socketHost: String) { частный lateinit var сокет: Socket частный var _onConnect: MutableList Unit> = mutableListOf() в этом { сокет = IO.socket(socketHost) сокет.он("подключиться") { _onConnect.forEach { it() } } } веселое соединение () { сокет.connect() } fun onConnect(обратный вызов: () -> Unit) { _onConnect += { обратный вызов() } } } В основной деятельности я использую такой код

private val apiSocket: ApiSocket от lazy { ApiSocket(BASE_URL) } переопределить fun onCreate(savedInstanceState: Bundle?) { .... Log.d("DEBUG", Thread.currentThread().name) // MainThread apiSocket.onConnect { Log.d("DEBUG", Thread.currentThread().name) // EventThread runCodeInMainActivityThatCanDoAnything() } и я вижу, что обратный вызов выполняется в EventThread. Должен ли я использовать что-то вроде Coroutine Scope(Dispatchers.Main).launch или runOnUiThread вот так:

class ApiSocket(val socketHost: String) { частный lateinit var сокет: Socket val область = CoroutineScope(Dispatchers.Main) частный var _onConnect: MutableList Unit> = mutableListOf() в этом { сокет = IO.socket(socketHost) сокет.он("подключиться") { объем.запуск { _onConnect.forEach { it() } } } } веселое соединение () { сокет.connect() } fun onConnect(обратный вызов: () -> Unit) { _onConnect += { обратный вызов() } } } Как правильно использовать обратные вызовы из разных библиотек?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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