Я хочу вернуть некоторые данные из моего дочернего занятия ActivityChild
в основное занятие ActivityMain
Сначала я звоню своему ActivityChild
из моего ActivityMain
таким образом:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivityForResult(intent, 1)
// Actually, this code first launch chrome, then when the user identify on
// chrome, the redirect_uri calls the ActivityChild
затем я возвращаю свои данные из ActivityChild
в ActivityMain
следующим образом:
val data: Uri? = intent.data
val returnedIntent = Intent();
returnedIntent.putExtra("code", data!!.getQueryParameter("code"))
setResult(Activity.RESULT_OK, returnedIntent)
finish()
и, наконец, я получаю данные с переопределением onActivityResult в ActivityMain
:
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
val returnedValue = data!!.getStringExtra("data")
}
else if (resultCode == Activity.RESULT_CANCELED)
Log.d("mDebug", "Couldn't retrieve data") // Always enters here
else
Log.d("mDebug", "final")
}
}
Он продолжает идти в состоянии Activity.RESULT_CANCELED
.Я не могу решить эту проблему, если она разрешима.
Я полагаю, что причина в том, что я впервые запускаю Chrome через намерение и что каким-то образом данные не могут быть переданы в ActivityMain
,Я далек от того, чтобы знать все, что касается намерений, и я, возможно, что-то здесь упускаю, так что, если кто-то может мне помочь и объяснить это, пожалуйста!