RegisterForActivityResult funktioniert nicht, wenn sich die Ausrichtung der zweiten Aktivität ändertAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 RegisterForActivityResult funktioniert nicht, wenn sich die Ausrichtung der zweiten Aktivität ändert

Post by Anonymous »

Ich rufe Aktivität B von Aktivität A mit dem ActivityResultLauncher auf und lege das Ergebnis von Aktivität B fest, wenn die Aufgabe erledigt ist. Dies funktioniert einwandfrei, wenn die Ausrichtung nicht geändert wird. Das Problem besteht darin, dass, wenn ich die Ausrichtung von Aktivität B ändere und dann das Ergebnis festlege, registerForActivityResult von Aktivität A nicht aufgerufen wird. Könnte mir jemand sagen, was das Problem sein könnte?
Hinweis: Dieses Problem tritt nicht auf, wenn ich startActivityForResult und onActivityResult verwende. Ich habe dies in ActivityResultLauncher geändert, da startActivityForResult veraltet ist.
activity Ein Beispielcode:

Code: Select all

private lateinit var launcher: ActivityResultLauncher

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(layout)
setLauncherResult()
}

private fun setLauncherResult() {
launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
//Do operations here
}
}

//On button click starting activity B using launcher
val intent = Intent(activityA, activityB)
launcher.launch(intent)

}
Beispielcode für Aktivität B:

Code: Select all

//setting result
val intent = Intent()
//set intent extras
setResult(Activity.RESULT_OK, intent)
finish()

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post