Kotlin Object OnComplete слушатель - PullRequest
       2

Kotlin Object OnComplete слушатель

0 голосов
/ 12 сентября 2018

Мне нужно знать, когда мой объект, наконец, настроен (получает данные из Интернета), чтобы я мог правильно использовать его без каких-либо исключений nullpointerexceptions.Есть ли способ, которым я могу сделать объект уведомлять, когда он все настроен, как лямбды onComplete в качестве параметров функции.Простой вопрос, но все помогает:)

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

В Android, мы можем использовать LiveData, если вы добавили поддержку библиотеки поддержки.

class Result

object MyObject {
    val onComplete: MutableLiveData<Result> = MutableLiveData()

    fun setUp() {
        // do something
        onComplete.setValue(Result()) // main thread
        // onComplete.postValue(Result()) // other thread
    }
}

class SampleActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        MyObject.onComplete.observe(this, Observer { result ->
            // do something with result
        })
        MyObject.setUp()
    }
}

Если этот метод незнаком, проверьте шаблон наблюдателя или LiveData.

0 голосов
/ 12 сентября 2018

Вы можете создать переменную типа функции в вашем классе. Установите функцию в вашей деятельности. Позвоните, когда ваш объект будет готов.

class MyObject()
{
    var onComplete : (()-> Unit)? = null

    fun setup()
    {
        //setup your object
        onComplete?.invoke()
    }
}

В вашей деятельности

val myObject = MyObject()
myObject.onComplete = {
    //..things to do after setup...
}
myObject.setup()

Вы также можете поместить его в конструктор, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...