Возможно ли выполнить операцию сразу после закрытия действия в Android Kotlin? - PullRequest
0 голосов
/ 09 апреля 2020

По сути, я открываю другой вид деятельности "Activity2" из "Activity1". Я хотел бы выполнить "function1" (в Activity1) сразу после закрытия Activity2. Возможно ли это? И как?

Intent(this, Activity2::class.java).also {
    startActivity(it)
}

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Вы можете startActivityForResult, и это даст вам результат в onActivityResult.

Activity1

Intent(this, Activity2::class.java).also {
    startActivityForResult(it,101)
}

fun function1(){
      //your function code here
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode==101 && resultCode==Activity.RESULT_OK){
           // it will print key value Activity2 : value
           Log.e("key value Activity2", data?.extras.getString("key"))
           function1()
        }
}

Activty2

override fun onDestroy(){
    super.onDestroy()
    val returnIntent = Intent()
    returnIntent.putExtra("key", "value")
    setResult(Activity.RESULT_OK, returnIntent)
    finish()
}
0 голосов
/ 09 апреля 2020

да, вы можете отправить действие или какой-либо флаг и получить этот флаг в следующем действии. Это был один способ, другим способом вы можете использовать startActivityForResult и использовать тот же способ, что и выше.

...