Hallo Manu,
viel Spaß in der Entwicklung von Android-Apps! Hast du schon vorherige Erfahrungen in Java sammeln können?
Liebe Grüße
Steven
Hallo Manu,
viel Spaß in der Entwicklung von Android-Apps! Hast du schon vorherige Erfahrungen in Java sammeln können?
Liebe Grüße
Steven
Hallo Manu,
frag doch deine Eltern ob Sie stellvertretend für dich registrieren und dir den Account dann geben. Somit würden deine Eltern bei beispielsweise Urheberrechtsverletzungen oder ähnlichem haften. Alles etwas kompliziert.
Liebe Grüße
Steven
Hallo zusammen,
endlich habe ich es geschafft ein eigenes Projekt umzusetzen und würde gerne endlich meine erste App im Play Store sehen.
Nun habe ich leider das Problem, dass ich zwar meine signierte App in der Google Play Console hinzugefügt habe und alles nach Anleitung durchgeführt habe - allerdings sich der Zustand von "in Bearbeitung" sich seit gestern nicht ändert. In anderen Foren habe ich meistens etwas von 3-4h Wartezeit gelesen. Die sind bei mir allerdings schon mehrfach um. Nun wollte ich mal bei erfahreneren Entwicklern nachfragen - wie lange hat es bei eurer ersten App gedauert, bis die App im Play-Store gelistet war?
Ich würde mich sehr freuen, wenn jemand seine Erfahrungen mit mir teilt!
Vielen Dank und schönen Abend
Steven
Hallo liebes Forum,
ich komme bei einer Problematik nicht mehr weiter und habe gefühlt schon das ganze Internet nach Lösungen durchforstet. Ich hoffe jemand aus dem Forum kann mir den entscheidenden Tipp geben…
Es geht darum zwei Aktionen zur selben Zeit auszuführen und diese auf der UI wiederzugeben. Ich weiß – es schreit förmlich nach Threads oder AsyncTask aber damit bekomme ich es einfach nicht hin! Ich erkläre mein Problem mal etwas spezifischer an der folgenden Anschauung:
Ich habe 4 Fragments in den ViewPager geladen, und dies funktioniert auch alles reibungslos. Nun habe ich einen Listener auf den viewPager und ändere in der Methode „onPageChange (int position)“ das in der Anschauung blaue Fragment über die FragmentTransaction. Diese lasse ich dann auch jedes Mal aus dem FragmentManager laden und instanziiere somit nicht immer ein neues Fragment-Objekt.
Nun zum Problem: Sobald ich durch die Fragments im ViewPager switche und das blaue Fragment bei jedem switch ausgetauscht wird, gibt es einen kleinen Ruckler. Dieser Ruckler stört mich so extrem und wirkt verständlicherweise auch nicht Professionell – was die Applikation aber sein soll.
Hat vielleicht jemand eine Idee wie ich diese Problematik lösen kann? Ich bin für jeden Rat zu haben!
Liebe Grüße und schönes Wochenende
Steven1997
Ah ich habe das Problem bereits lösen können..
Ich habe ein FragmentTransaction-Objekt verwendet und dieses jedes mal neu initialisiert, wodurch die laggs zu stande kamen.
Also falls jemand das selbe Problem mal haben sollte - das Objekt global anlegen um somit die Performance zu verbessern
Hallo liebes Forum,
ich bräuchte einen kleinen Denkstoß, da ich nicht weiß, wie ich folgendes Problem effizient lösen kann.
Mein ViewPager funktioniert soweit so gut und die Fragments werden auch geladen.
Allerdings würde ich gerne ein weiteres Fragment ändern lassen, sobald das Fragment im ViewPager sich ändert.
Dies ist auch schon mein eigentliches Problem.. mit dem addOnPageChangeListener würde ich ungerne arbeiten, da es dort zu kleinerem haken kommt..
Hätte jemand eventuell einen Ansatz?
Liebe Grüße und vielen Dank im voraus
Steven1997
Hallo @xxxy,
habt ihr etwa die Applikation nicht selbst hochgeladen? Wurden nicht eventuell Schnittstellen wie AdMob/Firebase/Analytics benutzt um Daten zu sammeln? Vielleicht ist der verknüpfte Account berechtigt Änderungen im Play Store vorzunehmen...
Ich glaube auch dass es ziemlich unkonventionell ist, dass der Entwickler die App unter seinem eigenem Namen bzw. Entwickleraccount veröffentlicht, wenn er nur beauftragt wurde diese für euch zu entwickeln.
Sonst glaube ich wird es kaum Wege gehen die App ohne Einverständnis des "Besitzers" rauszunehmen.
Liebe Grüße
Steven1997
Hallo @Andy61,
handelt es sich um sensible Daten? Das HTTPS Protokoll ist sicher und wurde bis heute mathematisch noch nicht gebrochen, soweit ich weiß.
Sollte also passen.
Liebe Grüße
Steven1997
Hallo @lalox3,
ich hätte es nicht anders gemacht - und mir fallen spontan auch keine großartigen Alternative ein, die effizienter wären.
Ist es ne SQLite-Datenbank? Wenn nicht, würde ich auf eine umsteigen um die Antwortzeiten möglichst gering zu halten
Liebe Grüße
Steven1997
wo speicherst du den die db?
„data/user/0/paketname…/
unter dem ganz normalen Appordner im root-verzeichnis
hi im allgemeinen wird nur das Verzeichnis im app Speicher /data/data/packet Name... Gelöscht nicht das Verzeichnis auf der sdkarte oder intenspeicher Karte.
Vielen dank für deine Antwort. Ich habe nochmal die Suchmaschine angeschmissen und habe paar englischsprachige Einträge gefunden...
ZitatThe database is located in /data/data/app.package.name/databases . You can access this folder only on the emulator or on a rooted device (with a file explorer with a Super user right for example).
When you delete an app all the relative datas are deleted (databases included)
Inhaltlich genau das was du sagst @jogimuc
Hallo werte Community,
ich entwickle im Moment eine kleine App - diese App bezieht die Daten aus einer SQLite-Database und soweit funktioniert auch alles wunderbar. Nun schicke ich einem Kumpel immer die APK um die Fortschritte zu demonstrieren. In der aktuellsten APK habe ich „values“ aus der Datenbank umgeändert. Der Kumpel hat die vorherige Version ganz normal deinstalliert und die neue APK installiert. Lange rede – kurzer Sinn… Aus irgendeinem Grund wird bei der Deinstallation das Verzeichnis unter „data/user/0/paketname…/“ NICHT gelöscht. Ich habe auf 3x Geräten das gegengeprüft und nun wollte ich fragen ob es jetzt ein genereller Fehler des Smartphones meines Kumpels ist, oder ob das normal ist, dass nach einer Deinstallation der Ordner unter „data/user/0/…“ nicht gelöscht wird? Weil auf meinen drei Geräten alles gelöscht wird und unter App-Details bei Daten 0 B angezeigt während bei dem Kumpel 90kb (ungefähre DB-größe) angezeigt wird.
Meine generelle Frage lautet jetzt: „Was macht Android, wenn eine Applikation deinstalliert wird?“
Eigentlich sollten doch die Verzeichnisse unter „/data/“ gelöscht werden, oder bin ich da schlichtweg falsch informiert?
Smartphone vom Kumpel wurde schon…
Ich bin für jede Antwort dankbar!
Liebe Grüße
Steven 1997
Alles anzeigenHallo habe mir die Sache nochmal angeschaut. Bei der ProgressBar machst Du die Zeit intensiven Sachen gar nicht im Thread.
aus dem Thread schickst du nur eine Nachricht an den Handler. Die ProgressBar läuft somit im Ui Thread. Ich habe das mit zwei ProgressBars so gelöst.
Deine animationDrawable.start(); Führst du auch im Handler aus und somit auch im UI und nicht im Thread aus.
Um es anzupassen währe der Code deiner animationDrawable.start(); funktion gut.
Hoffe das Hilft weiter.
ps. Deine progressbar läuft nicht komplett im ui thread denn dein CountDownTimer ist eigentlich schon ein eigener thread das macht Android für dich.JavaAlles anzeigenprivate ProgressBar progressBar; private ProgressBar progressBar2; private int progressStatus = 0; private int progressStatus2 = 0; progressBar = (ProgressBar) findViewById(R.id.progressBar); progressBar2 = (ProgressBar) findViewById(R.id.progressBar2); final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what){ case 0: progressBar.setProgress(progressStatus); break; case 1: progressBar2.setProgress(progressStatus2); break; } } }; Runnable runnable = new Runnable() { @Override public void run() { while (progressStatus < 100) { progressStatus += 1; try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(0); } } }; Thread thread = new Thread(runnable); thread.start(); Runnable runnable2 = new Runnable() { @Override public void run() { while (progressStatus2 < 100) { progressStatus2 += 1; try { Thread.sleep(150); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(1); } } }; Thread thread2 = new Thread(runnable2); thread2.start();
Vielen Dank für den Quellcode! Momentan ist es bei mir zeitlich sehr eng. Ich melde mich, wenn ich das mal so probiert habe. Klingt aber plausibel, so wie es jetzt ist! Dankeschön!
Erstmal vielen Dank für die vielen Antworten! Ich schaue gleich mal und probiere aus.
Hat sich wohl leichter geschrieben als es ist. Ich habe viel rumexperementiert und habe es nicht lösen können. Habe auch probiert beiden Threads den selben Handler zu geben, funktionierte aber leide auch nicht
Erstmal vielen Dank für die vielen Antworten! Ich schaue gleich mal und probiere aus.
versuche die beiden thread so zu synchronisieren das immer einer nach dem anderen im wechsel über seinen handler auf den ui thread zugreift.
Uh. Ich bin noch ziemlicher Anfänger. Ich wüsste jetzt nicht, wie ich dieses umsetzen würde. Ist die Methode "synchronized" nicht für sowas gedacht oder bin ich da komplett aufm falschen Dampfer? Ich glaube mit Quellcode ist es vielleicht einfacher zu interpretieren.
public void klasse1() {
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
synchronized (this) {
CountDownTimer countDownTimer = new CountDownTimer(5000, 50) {
@Override
public void onTick(long millisUntilFinished) {
progressBarTimer.setProgress((int) millisUntilFinished);
}
@Override
public void onFinish() {
}
}.start();
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.sendEmptyMessage(0);
}
};
Thread thread = new Thread(runnable);
thread.start();
}
public void klasse2() {
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
synchronized (this) {
animationDrawable.start();
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.sendEmptyMessage(0);
}
};
Thread thread = new Thread(runnable);
thread.start();
}
Alles anzeigen
Genau! Also ich habe zwei Threads. Einmal für das ImageView und einen für die ProgessBar. Die Threads senden immer an die (2x) Handler, weil diese ja nur UI Updates durchführen kann, soweit ich weiß.
Hallo liebes Forum,
heute wende ich mich wieder mit einem Thema was mich erneut sehr beschäftigt und ich das halbe Internet durchforstet habe um eine Lösung zu finden – leider ohne Erfolg.
Ich habe eine ProgressBar und eine ImageView in meinem Activity-Layout. Die ImageView hat als Source eine <animation-list>. Ich habe einen Thread und Handler erstellt und lasse im Handler die Aktualisierungen des UI-Threads (Animation vom ImageView und ProgressBar-Fortschritt) ausgeben.
Wenn ich beides hintereinander ausgebe, läuft alles flüssig. Lasse ich allerdings beides gleichzeitig ausführen, so fängt es an zu laggen. Was ich aber leider nicht verstehe…
Ich kann gerne den Quellcode bei Bedarf einfügen.
Liebe Grüße und vielen Dank im Voraus!
Steven
Aha in der Tat, ein Thread wird gestartet. Aber der Aufruf zu animationdrawable.start() ist der wichtige. Er macht die Hauptarbeit. Und ich vermute das Zeichnen macht er im Hauptthread.
Guckt mal hier: https://stackoverflow.com/ques…rawing-from-non-ui-thread
Wenn du die fertigen Frames für die Animation hast, male sie also im Hauptthread oder Timer. Wenn du erst rendern musst, kannste das im Thread tun und das Resultat im GUI-Thread ausgeben, also zeichnen. Scheinbar gibt es Auch ne AnimationDrawable. Füll sie mit Frames und stecke die Drawable in nen ImageView. Ich vermute das sollte klappen.
Okay! Ich schaue mir den Link mal an und schnüffel mal etwas im Code und probiere das etwas besser zu verstehen! Ihr beide habt mir sehr geholfen! Vielen Dank
Das war auch so von mir gewollt! Oder ist das Falsch? Sollte man die Animation lieber im Hauptthread ablaufen lassen? Ich hatte es eigentlich so verstanden, dass man möglichst Prozesse voneinander trennen soll, und diese jeweils in einem eigenen Thread laufen lassen soll..
Vielen Dank für die Unterstützung