BroadcastReceiver при установке не поможет. Он не зарегестрирован нигде еще и не запущен в лучшем случае удастся его запустить только после установки. Так что файл создавать лучше при первом запуске и дальше проверять на наличие только. Если это какой то файл с настройками лучше использовать SharedPreferences.
.subscribeOn(Schedulers.newThread()) //отдаем новый тред для работы в background
.observeOn(AndroidSchedulers.mainThread())
Вот и ответ)
для точного понимания советую поковырять тут (www.introtorx.com/Content/v1.0.10621.0/15_Scheduli...)
Если я правильно понял все выполняется в одном потоке пока не заданы отдельные Schedulers для подписки и обсервера.
Не пинай сильно если не помог)