You can create your own Observable with the Observable.create method at any time. This method takes an instance of the ObservableEmitter<T> interface as a source to observe on. So, let's consider this following example:
fun main(args: Array<String>) { val observer: Observer<String> = object : Observer<String> { override fun onComplete() { println("All Completed") } override fun onNext(item: String) { println("Next $item") } override fun onError(e: Throwable) { println("Error Occured ${e.message}") } override fun onSubscribe(d: Disposable) { println("New Subscription ") } }//Create Observer val observable:Observable<String> = Observable.create<String> {//1 it.onNext("Emit 1") it.onNext("Emit 2") ...