RegisterForActivityResult Activitylauncher -API nicht zurückgeben, wenn die gestartete Aktivität eine KonfigurationsändeAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 RegisterForActivityResult Activitylauncher -API nicht zurückgeben, wenn die gestartete Aktivität eine Konfigurationsände

Post by Anonymous »

Als Titeldetail Elemente. < /p>
Eine normale Implementierung wurde durchgeführt, z. B. Aktivität A startet einen Aktivitätslauncher über eine Schaltfläche Klick. Der Aktivitätslauncher ist außerhalb aller Lebenszyklusfunktionen in einer globalen Variablen definiert. Dies funktioniert in einem normalen App -Flussvorgang einwandfrei, und ich habe diese App auf Porträtsperrung, sodass Änderungen der Bildschirmrotationskonfiguration nicht erfolgt. Ich habe jedoch Anforderungen an die App, um Konfigurationsänderungen für die Änderung der Benutzeroberfläche zu verarbeiten, da die Einstellungen für die Zugänglichkeitsgrößengröße oder die Erhöhung der Zugänglichkeitseinstellungen angezeigt werden. Dies stürzt die App nicht ab und ändert sich gut, aber in Aktivität B übergibt das Klicken auf das Listenelement das Ergebnis nicht an die Aktivität A. Mein aktuelles Setup, wobei Aktivität A und B unterschiedliche ViewModels haben, die nicht verbunden oder verwandt sind, kann ich das nicht nutzen, so dass ich ein Ergebnis wieder an Aktivität A von B zurückgeben kann, sobald Bs Aktivität zerstört und geschaffen wurde zu einer Konfigurationsänderung?

Code: Select all

//global variable outside of lifecycle calls as per documentation example
private val resultActivityHandler = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
when(it.resultCode) {
Activity.RESULT_OK -> { //grab intent data with it.data and process it }
Activity.RESULT_CANCELLED -> { //handle error here }
}

...

//inside onCreate//
binding.button.setOnClickListener {
val intent = Intent(context, ActivityB::class.java)
resultActivityLauncher.launch(intent)
}
Aktivität B (die Aktivität, die eine Konfigurationsänderung durchführt, wenn ich die Schrift-/Anzeigegröße in Barrierefreiheiteinstellungen erhöht, während die App im Hintergrund ist und in den Vordergrund zurückgegeben wird.

Code: Select all

//code to set result when list item is clicked
val intent = Intent().apply {
putExtra("key", data)
}
setResult(RESULT_OK, intent)
finish()

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post