+hihi+
Ein Klassiker.
Willkommen in der Android Welt!
+hihi+
Ein Klassiker.
Willkommen in der Android Welt!
1) Über einen Service, den Du irgendwie im Hintergrund mit gestartet bekommst. Soweit ich weiß können die Dinger nur beim Start der App mit angeschmissen werden, kann mich da aber auch irren.
Auf jeden Fall bedenke, dass so ein Service, der permanent im Hintergrund mit dem Internet kommuniziert, nicht nur möglicherweise Kosten verursacht sondern auch die Batterie arg leer zieht.
Im Übrigen lässt sich über die Einstellungen via Apps -> App Name -> App stoppen auch jeder im Hintergrund laufende Serve mit abschießen.
Das Problem hätten dann aber Facebook und Mail ebenso.
2) Das ist meines Wissens von Android so nicht vorgesehen und scheinbar hat da jeder Hersteller seinen eigenen Ansatz eingebaut.
Beispielsweise Sony
Eigentlich soll das so auch gar nicht gemacht werden, das ist zu sehr iOS.
Android teilt Informationen normalerweise nur über Notifications mit.
ZitatSencha provides HTML5-based app development tools and services for building universal apps that run on any device.
Universal App ≠ 'für Android'
HTML 5 = WebApp Gedöns
Damit dürfte geklärt sein, warum die App aussieht wie für iOS gemacht.
Vermutlich über so ein WebApp Gedöns erstellt. Vielleicht sogar eine reine Web App?
Man weiß es nicht, da der Autor diesbezüglich nichts mitteilt.
Er hat sich also nicht an die Regeln zur Vorstellung eigener Projekte gehalten.
Sollte hier keine Reaktion kommen, werde ich den Thread an das Moderatorenteam melden.
Der Weg funktioniert eigentlich auch so.
Nur ist mir persönlich der Wert android:background bei den Drawable XML noch nie untergekommen, lediglich android:drawable.
Eventuell hast Du auch das background.xml einfach in den falschen Ordner gepackt. Gemäß Dokumentation gehört das nämlich in den res/color Ordner, nicht in den res/drawable.
Kopier mal Deine layout.xml und Deine background.xml rein.
Und den genauen Wortlaut des Fehlers, aus dem hervor geht, dass was mit Deiner XML nicht stimmt.
Lieber drei Zeilen zu viel als eine zuwenig.
Gar nicht, da das dem Konzept eines Buttons entgegen läuft.
Entweder etwas wird nach Buttondruck gestartet, oder etwas wird nach einer Schüttelgeste gestartet.
Natürlich kann sowohl der Buttondruck als auch die Schüttelgeste dasselbe starten.
Du könntest aber auch via Schütteln den Button aktivieren um dann auf den zu drücken…
An die Schüttelgeste kommst Du (sofern vom Gerät unterstützt) über den SensorManager.
Da musst Du dann 'nur noch' definieren, ab welchen Werten Du das Ganze als 'geschüttelt' werten möchtest.
Beispiel bei StackOverflow
Beispiel von Hlidskialf Software
Beispielsweise mit einem AsyncTask.
Dem findigen Leser wird auffallen, dass hinter "AsyncTask" ein Link zu einer Dokumentation inklusive Codebeispiel zu finden ist.
Zur Dokumentation von postExecute:
Da steht alles wichtige gut dokumentiert.
Wenn Du die Konzepte, Routinen und Methoden verstanden hast, dürfte es für Dich ja ein Leichtes sein, aus dieser auf dem UI Thread ausgeführten Methode mit dem übergebenen XML String die Daten an Deine Activity zu übergeben.
Ja, man muss zunächst lernen mit der Dokumentation zurecht zu kommen.
Meine ersten Gehversuche hatte ich mit Cupcake (1.5) – die Qualität der Dokumentation ist um ungefähr den Faktor 500 besser geworden.
Überraschung: bevor man für den Marathon trainiert sollte man bereits laufen können.
Solange Du nicht verstehst, was die Methoden, Routinen und Konzepte so tun, solange wirst Du auch keinen Erfolg haben.
Das verlinkte Beispiel ist durchaus sehr aussagekräftig und funktional. Es liegt an Dir dies als Grundlage für eigene Übungen zu nutzen und viel damit herumzuprobieren.
Dein 'result' String wird an die Methode postExecute(String) übergeben.
Alle weiteren Arbeiten musst Du also in dieser Methode durchführen.
Kleiner Tipp: dämliche Apps werden kaum geladen.
Eher erschreckend, dass die Suche nach massenmordenden Diktatoren so ohne Weiteres läuft.
Warum lässt man die alte Nazisau nicht einfach vor sich hin modern?
Was den Vorstellungsthread betrifft: da hast Du Dich wohl nicht an die Vorgaben der Projektvorstellung gehalten.
Wenn Du sagst:
listView.setBackgroundColor()
Was soll dann Deiner Meinung nach passieren?
Du musst in der getView() Deines Adapters die Hintergrundfarbe des Views setzen, welches zurückgegeben werden soll.
Die Dokumentation ist eigentlich offensichtlich.
Du hast Methoden, die auf dem MainThread ausgeführt werden.
Wenn Du den AsyncTask dann noch als innere Klasse definierst, kannst Du auch auf die Properties deiner Activity zugreifen.
Ansonsten gib ne Referenz auf die Activity mit und definiere Getter und Setter dafür.
Nun ja, Du brauchst das Gerät vermutlich nicht schon gestern.
Wenn Du natürlich das Gerät nicht zum Entwickeln brauchst ist es fast egal, welches Du nimmst.
Vermutlich hättest Du das ViewHolder Pattern anwenden sollen.
Tipps wieder bei Android selbst:
http://developer.android.com/t…uts/smooth-scrolling.html
Versucht etwa gerade jemand, der sich selbst nach einer ethisch nicht ganz korrekten Romanfigur benannt hat, mich mit pseudointelektuellen Ausdrücken zu diskreditieren?
Meine Hybris ergibt sich aus folgenden Dingen:
1) Ich bin als Entwickler in dieser Community unterwegs,
2) einer Community, die von rein werbetreibenden Schmarotzern nicht als solche erkannt wird,
3) während viele Entwickler das Forum nutzen wofür es da ist.
Die Tatsache, dass sich kaum jemand an die Regeln der Projektvorstellung hält und das Unterforum daher zur reinen Werbeplattform verkommt, ändert nichts daran, sondern führte eben zur Einführung der Administration dieses Unterforums und der kommentarlosen Sperrung und Löschung von reinen Werbeposts, über die Du Dich ja so herrlich echauffierst.
Übrigens zog 'Der hat aber auch…' schon im Kindergarten nicht mehr.
Viel interessanter finde ich ja, wie sich ein in der Community inaktiver rein werbetreibender User erdreistet, die Kompetenz anderer Communitymitglieder an Hand ihres Ranges beziffern zu können.
Zumal der 'User' Kogoro-Christopher 'Super Moderator' ist.
Deine Aufmerksamkeitsspanne ist wirklich beachtlich – gering.
Leider kannst Du erst erkennen wie gut das Gerät ist, wenn Du es ausgiebig getestet hast.
Ich habe bei Asiaten eigentlich immer Probleme feststellen müssen. HUAWEI beispielsweise verweigert offenbar die Freigabe von LogCat über ADB.
Ich würde auf jeden Fall noch dreihundert Euro sparen. Nimm Dir ein Google Nexus 5 und Du hast eine gute Updateversorgung.
Da gibt es was von Ratiopharm
Die Aussage ist sein voller Ernst. Hoffe ich zumindest.
Das Forum nennt sich 'Stelle Dein Projekt vor' und nicht 'Mach unqualifizierte Werbung für Deine App'.
Es mag Dir vielleicht noch nicht aufgefallen sein, aber dies hier ist ein Entwicklerforum.
Werbung für dusselige Minigames bekommen wir schon durch die normale Gerätenutzung mehr zu Gesicht als wir haben wollen.
Und Werbung ist, was Deine andere Projektvorstellung ist.
Du erzählst nichts über die verwendeten Technologien (OpenGL? Alles in einem View? Cocos2D?), den Zeitaufwand, die Planungsphase, die Beschaffung von Ressourcen – kurz: Du stellst Dein Projekt nicht vor sondern wirbst für die App.
Ich bin froh und dankbar, dass da nicht mehr einfach alles reingestellt wird!
Hi Julian,
das ist ja eine nette Denksportaufgabe für zwischendurch.
Also zunächst würde ich auf den AlarmManager verzichten. Der ist (wie der Name schon sagt) für Alarme zuständig.
Statt diesem solltest Du eher auf einen Timer zurückgreifen.
Ein Timer lässt sich mit einer Vorlaufzeit und einem Intervall konfigurieren, so dass der mit dem Timer verbundene Task (relativ) regelmäßig zur selben Zeit ausgeführt wird.
Mit diesem Task wird Deine Messung erst einmal nicht weiter beeinflusst, so dass der zeitliche Verlust überschaubar ist.
–––
Wie würde ich an so ein Projekt gehen…
Ich würde mich von der technischen Seite nähern. (Andere würden bei der UI-Seite loslegen.)
Erst einmal das Grundlegende in der Main Activity zusammenklöppeln. Ohne UI, Buttons etc, einfach die Startroutine in die onCreate() und die Stoproutine in die onDestroy().
Also den Manager, den Listener, den Timer.
Vielen einzelne Unit Tests, einer je Komponente, wären auf jeden Fall meine erste Anlaufstelle.
Da würde ich erst einmal 4 Stunden für veranschlagen. Es kommt nämlich immer irgendwas dazwischen…
Wenn das alles zur Zufriedenheit läuft, würde ich den Start- und Stoppkrams in einen gestarteten (nicht gebundenen) Hintergrundservice auslagern.
Diese Änderung sollte Deine Unit Tests nicht beeinflussen. Falls doch hast Du sie wohl falsch geschrieben.
Noch mal großzügig 2 Stunden für veranschlagt, bis auch das so richtig zuverlässig läuft.
Anschließend kannst Du Dich dann um das UI kümmern. Bei einem Button und einer Notification ist das in einer Stunde durch.
In hübsch, animiert, auf unterschiedliche Geräte optimiert, mit Parser für die Textdatei um einen Verlauf anzuzeigen, mit graphischer Darstellung dieses Verlaufs, mit Export- und Sharemöglichkeiten, mit hübscher Anbindung an die Google Play Services und dem Ausdenken von Achievements sowie einer Weltrangliste, Internationalisierung in 28 Sprachen mit entsprechenden Graphiken und vielen UI- und Integration Tests kannst Du dafür aber auch locker 40 Stunden verbraten. It depends.
Ein Bekannter zitierte seinen IT-Prof mit folgenden Worten:
ZitatMit ausreichenden Tests, guter Dokumentation und geschickt geplantem Marketing dauert auch ein 'Hallo Welt' gut und gerne drei Wochen."