Hi Leute,
ich habe ein paar Fragen bezüglich einem Projekt, das ich in Android entwickeln möchte. Ich bin neu in der Android-Welt, kenne mich allerdings mit JAVA bereits aus.
Es handelt sich um eine Logging/Tracking App. In der folgenden Zeichnung ist es etwas genauer erklärt.
Ich besitze somit 3 Activities. Meine MainActivity, SensorsActivity und LocationActivity.
Aufgabe der einzelnen Activities:
LoggingActivity: Der User wählt in dieser die einzelnen Sensoren aus, welche mitgeloggt werden sollen. Zusätzlich wählt er zu jedem Sensor die Refresh-Zeit des Signals aus (Fast, normal, slow).
LocationActivity: Der User wählt die Accuracy (Best/normal) sowie die Refresh-Zeit des GPS-Signals aus (Fastest/fast).
MainActivity: Es kann von der Start Activity (MainActivity) in die einzelnen anderen Activities geswitcht werden, um die Einstellungen vorzunehmen. In der MainActivity gibt es eine Checkbox, welche, wenn sie angeklickt wird, das Logging starten soll. Draufhin sollen Location sowohl Logging Daten aufgenommen werden. Bei abwählen der Checkbox sollen diese Daten in Textdateien Zeilenweise gespeichert werden.
Logging sowie Tracking funktioniert bereits, allerdings als einzelne Activities, ohne von der MainActivity aus gestartet zu werden.
Mein Problem ist es, ich verstehe (noch) nicht, wie die Kommunikation zwischen den Apps funktionieren soll. Momentan (bei den einzelnen Activities) ist es noch so, dass Location sowie Logging ihre eigene start()-Methode besitzen, die bei Klick einer Checkbox gestartet werden. Beim erneuten Klicken der Checkbox werden die geloggten Daten gespeichert.
Nun möchte ich es von der MainActivity aus starten, d.h. ich benötige die Checkbox in dieser. Doch soll ich die start() Methoden in den jeweiligen Activities lassen?
Ich stelle es mir so vor: in der MainActitvity ist eine start() Methode, welche zwei Threads (einen Sensors, einen Location) eröffnet, die ihre Aufgabe ableisten und bei erneutem Klicken der Checkbox den Thread stoppen (und kurz davor die Daten saven). Aber das wird so wohl nicht in Android funktionieren.
Ich komme noch nicht damit klar, zu entscheiden, ob ich dann die beiden Activites (Sensors/Location) als Service hernehmen soll, da sie ja im „Hintergrund“, während die MainActivity offen ist, mitloggen sollen. Doch wenn es ein Service ist, was dann mit dem UI, in den ich die Settings/Sensoren, welche geloggt werden sollen, auswähle.
Oder sollte ich die beiden Activies Logging und Location KOMPLETT ohne Logik lassen, lediglich zum Auswählen der Parameter/Settings (Sensoren, Refresh-Zeit, usw.) hernehmen, die ausgewählten Daten in einer Klasse speichern und anschließend in meiner MainActivity diese dann weiterverarbeiten?
Viele Grüße,
würde mich total freuen, wenn ihr mir weiterhelfen könntet
ich habe ein paar Fragen bezüglich einem Projekt, das ich in Android entwickeln möchte. Ich bin neu in der Android-Welt, kenne mich allerdings mit JAVA bereits aus.
Es handelt sich um eine Logging/Tracking App. In der folgenden Zeichnung ist es etwas genauer erklärt.
Ich besitze somit 3 Activities. Meine MainActivity, SensorsActivity und LocationActivity.
Aufgabe der einzelnen Activities:
LoggingActivity: Der User wählt in dieser die einzelnen Sensoren aus, welche mitgeloggt werden sollen. Zusätzlich wählt er zu jedem Sensor die Refresh-Zeit des Signals aus (Fast, normal, slow).
LocationActivity: Der User wählt die Accuracy (Best/normal) sowie die Refresh-Zeit des GPS-Signals aus (Fastest/fast).
MainActivity: Es kann von der Start Activity (MainActivity) in die einzelnen anderen Activities geswitcht werden, um die Einstellungen vorzunehmen. In der MainActivity gibt es eine Checkbox, welche, wenn sie angeklickt wird, das Logging starten soll. Draufhin sollen Location sowohl Logging Daten aufgenommen werden. Bei abwählen der Checkbox sollen diese Daten in Textdateien Zeilenweise gespeichert werden.
Logging sowie Tracking funktioniert bereits, allerdings als einzelne Activities, ohne von der MainActivity aus gestartet zu werden.
Mein Problem ist es, ich verstehe (noch) nicht, wie die Kommunikation zwischen den Apps funktionieren soll. Momentan (bei den einzelnen Activities) ist es noch so, dass Location sowie Logging ihre eigene start()-Methode besitzen, die bei Klick einer Checkbox gestartet werden. Beim erneuten Klicken der Checkbox werden die geloggten Daten gespeichert.
Nun möchte ich es von der MainActivity aus starten, d.h. ich benötige die Checkbox in dieser. Doch soll ich die start() Methoden in den jeweiligen Activities lassen?
Ich stelle es mir so vor: in der MainActitvity ist eine start() Methode, welche zwei Threads (einen Sensors, einen Location) eröffnet, die ihre Aufgabe ableisten und bei erneutem Klicken der Checkbox den Thread stoppen (und kurz davor die Daten saven). Aber das wird so wohl nicht in Android funktionieren.
Ich komme noch nicht damit klar, zu entscheiden, ob ich dann die beiden Activites (Sensors/Location) als Service hernehmen soll, da sie ja im „Hintergrund“, während die MainActivity offen ist, mitloggen sollen. Doch wenn es ein Service ist, was dann mit dem UI, in den ich die Settings/Sensoren, welche geloggt werden sollen, auswähle.
Oder sollte ich die beiden Activies Logging und Location KOMPLETT ohne Logik lassen, lediglich zum Auswählen der Parameter/Settings (Sensoren, Refresh-Zeit, usw.) hernehmen, die ausgewählten Daten in einer Klasse speichern und anschließend in meiner MainActivity diese dann weiterverarbeiten?
Viele Grüße,
würde mich total freuen, wenn ihr mir weiterhelfen könntet