I am new into RxJava.

I am leaning by online resources and implement it.
I am trying to code very simple stuff but i am getting some issues.

```
var animalobservable: Observable<String> = Observable.just("Ant", "Bee", "Cat", "Dog", "Fox")
var animalObserver: Observer<String> = getAnimalObserver()

animalobservable
    .subscribeOn(Schedulers.trampoline())
    .debounce(3, TimeUnit.SECONDS)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(animalObserver)

```

And i do some stuff in onNext method.

```
private fun getAnimalObserver(): Observer<String> {
    return object : Observer<String> {
        override fun onSubscribe(d: Disposable) {
            Log.d("OnSubscibe", "onSubscribe")
        }

        override fun onNext(s: String) {
            Log.d("OnNext", "Name: $s")
            Toast.makeText(context, "Name : $s", Toast.LENGTH_SHORT).show()
        }

        override fun onError(e: Throwable) {
            Log.e("OnError", "onError: " + e.message)
        }

        override fun onComplete() {
            Log.d("OnComplete", "All items are emitted!")
        }
    }
}

```

**My problem** is when I print some code into Logcat it works fine. Data emitted one by one properly. 

But when I toast it instead of Logcat it only emits last data "fox". 

I want to know what's issue is going on for toast and logcat. I am assuming it happens because of threading but I am not getting why it happens. 

Thanks in advance..!