___ answer12823453 ___
  

Da dies die meiste Zeit gut funktioniert, muss ich annehmen, dass zwischen onCreate und den geladenen Ressourcen eine Art Race-Bedingung besteht.

Wenn die gleiche APK-Datei - keine Neukompilierung, keine Neuinstallation usw. - den Fehler nicht konsistent erzeugt, dann könnte es eine Art Race Condition sein, obwohl mich das überraschen würde.

Wenn die same APK-Datei konsistent fehlschlägt, dann ist dies eine größere Vielfalt an Ressourcen, die nicht mit dem Rest des Code-Problems synchronisiert sind, und das Säubern der Projekt wird es aufräumen.

  

Gibt es einen besseren Ort, um einen Dienst zu initialisieren, wenn die Anwendung gestartet wird?

Meiner Meinung nach ist die Anzahl der Apps, die einen Dienst beim Start der Anwendung initialisieren müssen, extrem niedrig, und ich kann mir kein Szenario ausdenken, wo dies ein guter Plan wäre. Das soll nicht heißen, dass du kein solches Szenario hast, aber es ist ein ernsthafter Code-Geruch in meinem Buch ohne eine Erklärung.

    
___ answer12823602 ___

Ich habe festgestellt, dass in Fällen, in denen viele Ressourcen verwendet werden (und in R.java generiert werden), das Bereinigen der Anwendung vor der Ausführung diese Probleme behebt. Ich würde also annehmen, dass dies keine Race Condition ist - aber ein Problem mit Eclipse oder dem Android SDK mit nicht erfrischenden Ressourcen. Was die Platzierung des Codes betrifft - es ist meiner Meinung nach so gut wie jede andere Option.

    
___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ ___ qstnhdr Race Condition zwischen Anwendung onCreate und Ressourcen geladen? ___ qstntxt ___

Ich habe die folgende Anwendungsklasse für meine App. Wenn die Anwendung gestartet wird, möchte ich einige Einstellungen aus den Einstellungen abrufen und einen Hintergrunddienst starten.

%Vor%

Das funktioniert normalerweise gut, aber gelegentlich, wenn ich mein Programm von Eclipse "Run" starte, erhalte ich diesen Fehler:

%Vor%

Diese ID stammt von meinem R.java:

%Vor%

Da dies die meiste Zeit gut funktioniert, muss ich davon ausgehen, dass zwischen onCreate und den geladenen Ressourcen eine Art Wettlaufsituation besteht.

Wenn das der Fall ist, wird empfohlen, Ressourcen in der Anwendung onCreate nicht zu lesen?

Wenn ja, gibt es einen besseren Ort, um einen Dienst beim Start der Anwendung zu initialisieren?

    
___

8

Ich habe die folgende Anwendungsklasse für meine App. Wenn die Anwendung gestartet wird, möchte ich einige Einstellungen aus den Einstellungen abrufen und einen Hintergrunddienst starten.

%Vor%

Das funktioniert normalerweise gut, aber gelegentlich, wenn ich mein Programm von Eclipse "Run" starte, erhalte ich diesen Fehler:

%Vor%

Diese ID stammt von meinem R.java:

%Vor%

Da dies die meiste Zeit gut funktioniert, muss ich davon ausgehen, dass zwischen onCreate und den geladenen Ressourcen eine Art Wettlaufsituation besteht.

Wenn das der Fall ist, wird empfohlen, Ressourcen in der Anwendung onCreate nicht zu lesen?

Wenn ja, gibt es einen besseren Ort, um einen Dienst beim Start der Anwendung zu initialisieren?

    
Tim 10.10.2012, 15:43
quelle

2 Antworten

6
  

Da dies die meiste Zeit gut funktioniert, muss ich annehmen, dass zwischen onCreate und den geladenen Ressourcen eine Art Race-Bedingung besteht.

Wenn die gleiche APK-Datei - keine Neukompilierung, keine Neuinstallation usw. - den Fehler nicht konsistent erzeugt, dann könnte es eine Art Race Condition sein, obwohl mich das überraschen würde.

Wenn die same APK-Datei konsistent fehlschlägt, dann ist dies eine größere Vielfalt an Ressourcen, die nicht mit dem Rest des Code-Problems synchronisiert sind, und das Säubern der Projekt wird es aufräumen.

  

Gibt es einen besseren Ort, um einen Dienst zu initialisieren, wenn die Anwendung gestartet wird?

Meiner Meinung nach ist die Anzahl der Apps, die einen Dienst beim Start der Anwendung initialisieren müssen, extrem niedrig, und ich kann mir kein Szenario ausdenken, wo dies ein guter Plan wäre. Das soll nicht heißen, dass du kein solches Szenario hast, aber es ist ein ernsthafter Code-Geruch in meinem Buch ohne eine Erklärung.

    
CommonsWare 10.10.2012 15:51
quelle
1

Ich habe festgestellt, dass in Fällen, in denen viele Ressourcen verwendet werden (und in R.java generiert werden), das Bereinigen der Anwendung vor der Ausführung diese Probleme behebt. Ich würde also annehmen, dass dies keine Race Condition ist - aber ein Problem mit Eclipse oder dem Android SDK mit nicht erfrischenden Ressourcen. Was die Platzierung des Codes betrifft - es ist meiner Meinung nach so gut wie jede andere Option.

    
Phil 10.10.2012 15:58
quelle

Tags und Links