Я настоятельно рекомендую использовать шаблон наблюдателя для отправки информации об активности из AsyncTask.
Это просто, безопасно и элегантно. Вот образец.
class WriteToDiskAsync(private val writeToDiskListener: WriteToDiskListener) : AsyncTask<Void, Void, File?>() {
override fun doInBackground(vararg params: Void?): File? {
//whatever
}
override fun onPostExecute(survey: File?) {
writeToDiskListener.writeToDiskFinished()
}
}
Вот интерфейс:
interface WriteToDiskListener {
fun writeToDiskFinished()
}
И действие или фрагмент:
class MainActivity : AppCompatActivity(), WriteToDiskListener {
//Your stuff...
override fun writeToDiskFinished() {
if (!isFinishing) {
Toast.makeText(this@MainActivity, "Entry added to date database", Toast.LENGTH_LONG).show()
}
}
}
Проверка "! IsFinishing" рекомендуется, чтобы избежать исключений в некоторых моменты.
Чтобы вызвать AsyncTask из MainActivity, вам нужно просто сделать это:
WriteToDiskAsync(this).execute()
Надеюсь, это поможет.
Маурисио