Verständnisfragen zu Android

new Android

Mitglied
Hallo zusammen,

Android-Programmierung ist neu für mich, daher habe Ich da mal paar allgemeine Verständnisfragen.
Habe bereits gegoggelt, dennoch bleiben diese Fragen für mich unklar. Da Ich nicht für jede Frage einen eigenen Thread eröffnen möchte habe Ich ein paar Fragen angesammelt:

  1. Wie ist es möglich mehrere Activities aus der MainActivity heraus zu starten? Startet man diese parallel in AsyncTasks? Bsp. Auslesen einer DB und paralleler bilder Download von einem anderen Server.
  2. Ist es bei der Erzeugung von Objekten egal wie viele Objekte Ich erzeuge? Was geschieht mit den Objekten nach Beendung des Programms? Räumt der GC wirklich alle Objekte ab oder nur ungenutze?
  3. Wie kann Ich mehrere Activities parallel laufen lassen? Über AsyncTasks oder via Intent-Befehl?
  4. Wie realisiere Ich die Rückkehr zur vorletzten Activity nach zwei Intents zu einer anderen Activity?
  5. Also von der MainActivity "springe" ich in ein Anderes Layout, von diesem aus wieder in ein anderes Layout und von diesem möchte Ich dann via Button wieder in das MainActivity-Layout.
  6. Ist es möglich, dass Ich ein Programm aufbaue indem ich alle Teilaufgaben wie kleine selbsttändige Projekte behandel? Wie kann Ich diese dann mit einander kombinieren wenn Ich diese nahezu unabhängig von einander programmiert habe und diese auch autark läufen können?
  7. Ist das auslagern von Methoden in andere Klassen empfohlen? Man muss ja dann immer Objekte erzeugen, oder schadet das nicht?
  8. Was ist für die Aufteilungen in Nebenläufigkeiten zu beachten? Realisiert man Nebenläufigkeiten immer in Threads, also in AsyncTasks?
  9. Ist es bei der Android-Programmierung auch so, dass alles aus der MainActivity heraus aufgerufen werden soll?
  10. Ist es bezüglich der Intents ein Unterschied ob Ich mit Fragments die Sache angehe?
  11. Kann man einen startIntentForResult()-Aufruf wie einen Funktionsaufruf sehen welcher eine Funktion ausführt und die gewünschten Daten zurück gibt?
  12. Wo wird die Speicherung der Einstellungen vorgenommen? Werden die Einstellungen in eine SQLite DB gespeichert?
  13. Darf man alle API's koostenlos und kommerziell nutzen? Beispiel GCM?

Vielen Dank vorab.
 
Zuletzt bearbeitet:

dzim

Top Contributor
  1. Mehrere Activities starten: kein Ding. Aber: Eine Activity ist kein eigentändiger Arbeitsthread oder so - es wird immer nur eine Activity angezeigt, kurz: eine Activity ist (wenn du so willst) ein Fenster in deiner Anwendung. Heute baut man Apps oft so, dass es nur wenige separate "Fenster" gibt, dafür aber in ein oder mehrere Fragmente unterteilt sind. Bsp: Mail auf Phone hat nur die Liste der Mails, dann im nächsten Bild nur den Inhalt der Mail. Auf Tablet wäre links die Liste (Master) und rechts die Mail (Details).
  2. Beschäftige dich am besten erst einmal mit Java, dann klärt sich die Frage eigentlich. Die GC ist keine eierlegende Wollmilchsau und irgendwann ist der Speicher,der dir zur Verfügung steht, dicht. Du kannst also schon am besten die GC damit "unterstützen" nicht mehr benötigte Objekte zu dereferenzieren (auf "null" setzen oder so).
  3. Siehe 1
  4. backbutton zwei mal drücken, man kann auch activities nicht in den back-stack aufnehmen lassen, denke ich, onbackpressed überschreiben, ... Google hilft weiter.
  5. in ander Layouts "springt" man nicht. Mit Fragment ist das recht einfach zu realisieren. Schau dir die mal an.
  6. Das Stichwort sind library-Projekte. Wie das dann konkret in Eclipse oder Android Studio gemacht wird, beschreibt die Android Dokumentation ausführlich genug.
  7. Das ist ein Stück weit dir überlassen. Kannst ja auch bei Hilfsmethoden das ganze in Utility-Klassen mit statischen Methoden machen. Hier kommt es absolut darauf an _was_ du auslagern möchtest.
  8. Ja. Wobei es ein Stück weit davon abhängt, was du machen willst: kurze Aufgaben ohne Feedback an die UI -> Threads, kurze Aufgaben mit Feedback an die UI -> AsyncTask, langlaufende Aufgaben in Services (am einfachsten sind IMHO IntentServices, weil die schon auf einem separaten Thread laufen, sonst musst du selbst noch einen Thread anlegen - Kommunikation bei IntentServices: Broadcast/-Receiver, bei normalen Services mit eigenen Threads: Mesenger (finde ich aber recht komplex)).
  9. Was meinst du? Sollen/müssen tust du erst mal nichts. Android lässt dir am Ende schon ziemlich viele Freiheiten.
  10. Intents haben nichts (direkt) mit Intents zu tun. Intents starten andere Activities, Apps, ... Sie sind halt - wie der Name nahelegt - eine Absichtserklärung etwas zu tun (was genau, wird in ihren Actions und Extras beschrieben). Fragmente sind Teil einer Activity und somit einer (vielleicht via Intent gestarteter) Oberfläche einer App.
  11. Jain, also du kannst im entsprechenden Callback auf das Ergebnis warten, da aber eine andere Activity - also ein anderes Fenster - gestartet wird, ist ein Vergleich zu einer Methode hier vielleicht nicht ganz passend.
  12. Das ist ein Stpck weit dir überlassen, i.d.R. verwendet man dafür Preferences - das sind key-value-Pairs. Wie die gespeichert werden, weiss ich gerade tatsächlich nicht, aber wenn du es in eine DB speichern möchtest (was natürlich geht), musst du dich um die Methoden eben erst einmal selbst kümmern.
  13. Das ist von den Lizenen abhängig. Android-Libs kannst du verwenden, wie du möchtest. Echte Google-Libs sind eventuell anders - hier musst du dich vielleicht noch separat anmelden oder so.Third-Party-Libs:Lizenzmodell lesen und verstehen.

Hinweis am Schluss: Ich habe viel aus den Tutorials von Lars Vogel gelernt: Android Development
 

new Android

Mitglied
Vielen Dank für diese super Antwort. Das Hilft mir sehr.
  1. Mehrere Activities starten: kein Ding. Aber: Eine Activity ist kein eigentändiger Arbeitsthread oder so - es wird immer nur eine Activity angezeigt, kurz: eine Activity ist (wenn du so willst) ein Fenster in deiner Anwendung. Heute baut man Apps oft so, dass es nur wenige separate "Fenster" gibt, dafür aber in ein oder mehrere Fragmente unterteilt sind. Bsp: Mail auf Phone hat nur die Liste der Mails, dann im nächsten Bild nur den Inhalt der Mail. Auf Tablet wäre links die Liste (Master) und rechts die Mail (Details).


  1. Laufen die Activities also der Reihe nach der Aufrufreihenfolge entsprechend ab?
    Eigentich ist eine Activity ja die Schnittstelle zum UI, muss Ich also auch wirklich bei jedem Aufruf einer Activity setContentView() aufrufen? Kommt es zu Problemen wenn Ich dies nicht tue?
    Zwei Activities können aber den gleichen ContentView anzeigen oder? Layouts werden ausschließlich über die Activities aufgerufen?

    [*]backbutton zwei mal drücken, man kann auch activities nicht in den back-stack aufnehmen lassen, denke ich, onbackpressed überschreiben, ... Google hilft weiter.

    Okay, Ich schau nochmal nach.

    [*]in ander Layouts "springt" man nicht. Mit Fragment ist das recht einfach zu realisieren. Schau dir die mal an.

    Der Vorteil von Fragments ist also, dass also mehrere Fragments in einem Layout über eine Activity genutz werden können?

    [*]Das Stichwort sind library-Projekte. Wie das dann konkret in Eclipse oder Android Studio gemacht wird, beschreibt die Android Dokumentation ausführlich genug.

    Auch hierzu werde Ich mich einlesen.

    [*]Das ist ein Stück weit dir überlassen. Kannst ja auch bei Hilfsmethoden das ganze in Utility-Klassen mit statischen Methoden machen. Hier kommt es absolut darauf an _was_ du auslagern möchtest.

    OKay, also Ich man hier frei und es gibt keine Empfehlung diesbezüglich.

    [*]Ja. Wobei es ein Stück weit davon abhängt, was du machen willst: kurze Aufgaben ohne Feedback an die UI -> Threads, kurze Aufgaben mit Feedback an die UI -> AsyncTask, langlaufende Aufgaben in Services (am einfachsten sind IMHO IntentServices, weil die schon auf einem separaten Thread laufen, sonst musst du selbst noch einen Thread anlegen - Kommunikation bei IntentServices: Broadcast/-Receiver, bei normalen Services mit eigenen Threads: Mesenger (finde ich aber recht komplex)).

    Also solle man Updatevorgänge einer DB lieber über einen IntenService realisieren?

    [*]Intents haben nichts (direkt) mit Intents zu tun. Intents starten andere Activities, Apps, ... Sie sind halt - wie der Name nahelegt - eine Absichtserklärung etwas zu tun (was genau, wird in ihren Actions und Extras beschrieben). Fragmente sind Teil einer Activity und somit einer (vielleicht via Intent gestarteter) Oberfläche einer App.

    Danke, habe hierzu bei Jan Vogel eine gute Erklärung gefunden. Danke für die Tipps.

    [*]Jain, also du kannst im entsprechenden Callback auf das Ergebnis warten, da aber eine andere Activity - also ein anderes Fenster - gestartet wird, ist ein Vergleich zu einer Methode hier vielleicht nicht ganz passend.

    Okay, stimmt, macht Sinn. Aber vom Prinzip her ähnlich.

    [*]Das ist ein Stpck weit dir überlassen, i.d.R. verwendet man dafür Preferences - das sind key-value-Pairs. Wie die gespeichert werden, weiss ich gerade tatsächlich nicht, aber wenn du es in eine DB speichern möchtest (was natürlich geht), musst du dich um die Methoden eben erst einmal selbst kümmern.

    Meinte wo diese Standartmäßig von Android abgelegt werden.

    [*]Das ist von den Lizenen abhängig. Android-Libs kannst du verwenden, wie du möchtest. Echte Google-Libs sind eventuell anders - hier musst du dich vielleicht noch separat anmelden oder so.Third-Party-Libs:Lizenzmodell lesen und verstehen.
Hinweis am Schluss: Ich habe viel aus den Tutorials von Lars Vogel gelernt: Android Development

Super Seite, vielen Dank für deine Hilfe.
 

dzim

Top Contributor
1) Nein. Activities laufen nicht in Reihenfolge ab. Sind ja kein Wizard oder so. Es wird eine Aufgerufen und diese wird angezeigt.
3) Ja.
6) Im Prinzip kommt es auf die Menge an. Aber: Ich mache Inserts eh nur in einem Service (sie sind das Resultat einer größeren Operation und diese findet sowieso auf einem anderen Thread statt) und nutze AsyncTasks für Select-Operationen. Ich denke, damit bist du immer auf der sicheren Seite. Wenn du nur kleine Inserts machst, reicht auch dort ein Thread oder AsyncTask.
9) Keine Ahnung. Irgendwo in "/data/data/<dein-package-name>/..." also im geschützten Bereich vermute ich. Im Prinzip sollte dir das aber egal sein können. Verwende sie einfach :-D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Benachrichtigung Freigabe ab Android 14 Android & Cross-Platform Mobile Apps 1
J Android Benachrichtigung zum Zeitpunkt ers Android & Cross-Platform Mobile Apps 15
J Das Beispiel von Android erzeugt Fehler Android & Cross-Platform Mobile Apps 8
J Zeitdifferenzen unter Android 7 (API < 26) berechnen Android & Cross-Platform Mobile Apps 4
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Z Android IntelliJ Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
Android App auf das eigene Handy bekommen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
OnDemand CrossPlatform Kotlin iOs/Android Datenverbrauch Android & Cross-Platform Mobile Apps 2
W In Android Studio Integer an andere activities übergeben Android & Cross-Platform Mobile Apps 2
wladp Android Studio Room Database Android & Cross-Platform Mobile Apps 1
N "Schöne" Datatable in Android und setzen von Parametern von Textview im Code Android & Cross-Platform Mobile Apps 5
N Android game programmieren Android & Cross-Platform Mobile Apps 5
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
K BLE Komunikation mit Android studio und esp32 Android & Cross-Platform Mobile Apps 5
G Android UDP Kommunikation Android & Cross-Platform Mobile Apps 1
M Paper DB wird in Android Studio nicht erkannt Android & Cross-Platform Mobile Apps 7
J Android zugrif auf Thread nach Handy drehen. Android & Cross-Platform Mobile Apps 10
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
K Android Android In-App-Purchase lädt nicht Android & Cross-Platform Mobile Apps 0
Besset Android http request an interne ip adresse funktioniert nicht Android & Cross-Platform Mobile Apps 8
J Is Android Development Head First Outdated? Android & Cross-Platform Mobile Apps 3
J Android Android Datenbankverbindung zum Raspberry Pi Android & Cross-Platform Mobile Apps 1
lolcore Android Studio -Download Documentation for Android SDK Android & Cross-Platform Mobile Apps 0
S Sinnvollste weg eine SQLite DB mit Android auslesen Android & Cross-Platform Mobile Apps 7
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0
W App Abo Android Android & Cross-Platform Mobile Apps 10
OSchriever Android Android MediaPlayer bei Anruf stoppen/pausieren Android & Cross-Platform Mobile Apps 2
OSchriever Auf onClick-Listener reagieren und Parameter übergeben (Android Studio) Android & Cross-Platform Mobile Apps 4
W removeNetwork Android App mit Spendenaktion fürs Tierheim! Android & Cross-Platform Mobile Apps 1
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
P undefinierbarer Fehler Android Android & Cross-Platform Mobile Apps 8
T Android ArrayList sortieren mit 2 Werten ohne thencomparing , Wie? Android & Cross-Platform Mobile Apps 10
W Variable überschreiben (Android Studio) Android & Cross-Platform Mobile Apps 2
ruutaiokwu Android Selbst entwickelter SMTP-Client läuft auf PC, nicht aber auf Android Android & Cross-Platform Mobile Apps 9
ruutaiokwu Android Warum muss man bei Android Studio immer 2x auf "Run" klicken damit die App auf dem Gerät startet Android & Cross-Platform Mobile Apps 8
ruutaiokwu Android Wo das 'android.useAndroidX' property hinzufügen? Android & Cross-Platform Mobile Apps 8
ruutaiokwu Android In einem Android-“Spinner”-Element GLEICHZEITIG Bild (links) UND Text (rechts) anzeigen Android & Cross-Platform Mobile Apps 0
P Login und Registrierung Android Anzeige Android & Cross-Platform Mobile Apps 7
S Von JavaFx zu Android Android & Cross-Platform Mobile Apps 12
K Android to Pi | Websocket Problem Android & Cross-Platform Mobile Apps 3
ruutaiokwu Wie fügt man bei Android Studio .jar-Libraries zu einem Android-Java-Projekt hinzu? Android & Cross-Platform Mobile Apps 33
M Komponenten positionieren in Android Studio 3.6.3 Android & Cross-Platform Mobile Apps 1
M Android Studio - Property-Fenster einblenden Android & Cross-Platform Mobile Apps 1
M Android Studio - App auf dem Smartphone testen Android & Cross-Platform Mobile Apps 7
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
M Android Studio - Configuration fehlt Android & Cross-Platform Mobile Apps 20
M Wo kann ich das Android SDK herunterladen / wie kann ich es installieren Android & Cross-Platform Mobile Apps 3
M Unsupported class file major version 57 - Fehlermeldung bei Android Studio Android & Cross-Platform Mobile Apps 27
ruutaiokwu Android Studio (SDK) ANDROID_SDK_ROOT-Variable? Android & Cross-Platform Mobile Apps 5
O Web API in Android (JAVA) einbinden Android & Cross-Platform Mobile Apps 3
J Android Studio macht seltsame Sachen Android & Cross-Platform Mobile Apps 2
J Android 9.1 aber android Studio findet API22 Android & Cross-Platform Mobile Apps 0
Dimax Web-Seite in native app convertieren mit Android Studio Android & Cross-Platform Mobile Apps 8
A Android Studio: while-Schleife beginnt nicht Android & Cross-Platform Mobile Apps 5
lolcore android studio: fehler bei laden des emulators Android & Cross-Platform Mobile Apps 10
J Android App - Browser öffnen und Text eingeben/Button click auslösen Android & Cross-Platform Mobile Apps 10
A Android-Studio: 2. Layout nach kurzer Zeit aufzeigen Android & Cross-Platform Mobile Apps 2
A jpg wird im Android Studio nicht akzeptiert Android & Cross-Platform Mobile Apps 3
J Android Studio - ArrayList - Selected Item ermitteln Android & Cross-Platform Mobile Apps 13
T Android SDK-Manager startet nicht in Eclipse Android & Cross-Platform Mobile Apps 5
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
J Was soll das bedeuten ? does not require android.permission.BIND_JOB_SERVICE permission Android & Cross-Platform Mobile Apps 7
A Android Studio: ImageView verpixelt Android & Cross-Platform Mobile Apps 2
J intend Service im Android Studio Android & Cross-Platform Mobile Apps 4
L Android Android Development eventuell mit Flutter Android & Cross-Platform Mobile Apps 1
S Android Layout - welchen Typ? Android & Cross-Platform Mobile Apps 3
T Fehler Android Studio: java.net.MalformedURLException: no protocol: http%3A%2F%2Fwww.mal ..... Android & Cross-Platform Mobile Apps 2
Arif Android Android Studio: Fehler beim Einbinden fremder Bibliothek? Android & Cross-Platform Mobile Apps 2
L Android Android Contacts DB auslesen Android & Cross-Platform Mobile Apps 1
A Android Studio - App mit Nearby Android & Cross-Platform Mobile Apps 1
L Android content URI Datei einlesen Android & Cross-Platform Mobile Apps 9
N Android Game Background Service Android & Cross-Platform Mobile Apps 11
Jackii Android Android Studio Error im Testlauf ohne zu programmieren Android & Cross-Platform Mobile Apps 9
B Android Probleme mit Android Studio Android & Cross-Platform Mobile Apps 6
Excess Android Service läuft nicht in Sandby weiter Android & Cross-Platform Mobile Apps 2
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J App funktioniert auf Android 5, auf 6 nicht Android & Cross-Platform Mobile Apps 2
J Android Snake Android & Cross-Platform Mobile Apps 15
J Android TaschenRechner Android & Cross-Platform Mobile Apps 22
I Das Problem mit der Tastatur... android:windowSoftInputMode="adjustPan" Android & Cross-Platform Mobile Apps 1
E Wie erhalte ich Zugriff auf das Microfon? (Android Studio) Android & Cross-Platform Mobile Apps 9
C Android Programmierung speziell oder einfach Java Buch kaufen? Android & Cross-Platform Mobile Apps 3
B Android Kein Zugriff auf Telefonspeicher (Android 6) Android & Cross-Platform Mobile Apps 1
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Android Android Studio - Exportierte APK funktioniert nicht Android & Cross-Platform Mobile Apps 6
L Android Methode funktioniert nicht unter Android Android & Cross-Platform Mobile Apps 3
A Beginnen mit Serverkommunikatsion in Android Studio Android & Cross-Platform Mobile Apps 6
E Android Studio Android & Cross-Platform Mobile Apps 15
L Android Android Studio Setup killt Explorer Android & Cross-Platform Mobile Apps 3
K Android Videos rendern Android & Cross-Platform Mobile Apps 1
J Variable in strings.xml (Android Studio) Android & Cross-Platform Mobile Apps 0
B Android Android Studio lässt PC abstürzen Android & Cross-Platform Mobile Apps 3
B Android App Fehler Android & Cross-Platform Mobile Apps 21
J android Spinner funktioniert nicht Android & Cross-Platform Mobile Apps 14
G Android Push Notification Android & Cross-Platform Mobile Apps 2
Light Lux Fehlermeldung unter Android Studio Android & Cross-Platform Mobile Apps 1
D Android Android Apps direkt vom Handy aus programmieren? Android & Cross-Platform Mobile Apps 2
L Android Android Kalendar Tag Ansicht Android & Cross-Platform Mobile Apps 1

Ähnliche Java Themen

Neue Themen


Oben