Kein lokales Speichern ohne explizite Zustimmung, ist so. Webview u.a. sind nicht involviert. Ist ein rein lokales Programm. Habe das auch kontrolliert, bleibt leer, passt.
Beiträge von fxbastler
-
-
Nachtrag für alle später Suchenden: es sind zwei Funktionen.
Code
Alles anzeigen// in second activity // der android back button unten links override fun onBackPressed() { val result = Intent() result.putExtra(EXTRA_TASK_DESCRIPTION, "Android Back Button pressed") setResult(Activity.RESULT_OK, result) super.onBackPressed() } // der back button in der ActionBar oben links override fun onSupportNavigateUp() : Boolean { val result = Intent() result.putExtra(EXTRA_TASK_DESCRIPTION, "ActionBar Back Button pressed") setResult(Activity.RESULT_OK, result) // super.onSupportNavigateUp() kein super. .... finish() // second activity wird geschlossen return(true) // <- muss trotzdem sein, fun meckert sonst rum } //in main activity override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { val task = data?.getStringExtra(activity_settings.EXTRA_TASK_DESCRIPTION) task?.let { if(task.isNotEmpty()) { // mache irgendwas mit dem Rueckgabewert der second activity in task } }
Zur Erklärung: diese App soll generell keinerlei gespeicherte Daten / Einstellungen im System hinterlassen, shared preferences sind also keine Option. Erst wenn in einem Einstellungsdialog explizit lokales speichern aktiviert ist werden Daten persistent mittels shared preferences hinterlassen und bei Bedarf auch wieder entfernt. Da das per default nicht der Fall ist kann ich solche Funktionen nicht zur Übergabe von Daten zwischen activities benutzen
-
Danke, das war's. Der entscheidene Punkt ist die richtige Funktion: onBackPressed. Damit komme ich weiter.
-
Hallo Forum,
wie kann ich Daten zwischen verschiedenen Aktivitäten austauschen wenn ich in einer aufgerufenen Aktivität mittels der Android Taste Back unten oder der Pfeil zurück Taste links in der Actionbar der aufgerufenen Aktivität diese beende und zur aufrufenden Aktivität wechsle?
Beispiel: ich habe eine App (Android Studio 3.3.2, Kotlin) mit einer Haupt- und einer zweiten Aktivität die untereinander Daten austauschen sollen. Prinzipiell kein Problem: die Hauptaktivität übergibt beim Start der zweiten Aktivität Parameter nach Bedarf mittels Intent und startet dann die zweite Aktivität mittels startActivityForResult. Dort kommen diese Daten an, alles gut. Wenn ich in der zweiten Aktivität einen Button definiere, über result.putExtra zurückzugebende Daten definiere und die zweite Aktivität dann mit finish() beende dann kommen diese Daten auch in der Hauptaktivität im Callback onActivityResult an. Aber wenn die zweite Aktivität mittels der Android Taste Back unten links oder der Pfeil zurück Taste oben links in der Actionbar der aufgerufenen Aktivität beende dann kann ich nichts übergeben. Ein override der Funktionen onStop, onPause, onDestroy und onRestart der zweiten Aktivität nutzt nichts. Diese werden wohl nicht benutzt weil in onActivityResult nichts ankommt. Wie komme ich weiter und kann Daten übergeben ohne expliziten Aufruf von finish()?
danke vorab