Activity wird zweimal durchlaufen bzw. weitere Probleme

  • Hallo liebe Gemeinde,


    ich wende mich an euch, da ich folgendes Problem habe und hoffe, dass ihr mit euren Kentnissen und Erfahrungen mir helfen könnt.


    Ich programmiere gerade nur aus langeweile eine App, die es bereits im playstore gibt. Diese heißt CSGuns. Eigentlich eine einfach gebaute app mit einer Listview zubeginn und darauffolgenden wird eine imageview angezeigt, die die gewählte waffe anzeigt und beim draufklicken entsprechend den schuss abgibt. Ich möchte diese nun nachahmen bzw. grafisch verändern und einige sachen miteinbauen.


    Bin schon relativ weit gekommen. Allerdings ist mir aufgefallen, dass wenn ich eine waffe aus der listview auswähle, die anschließend öffnende activity Lebenszyklus zweimal durchläuft. Weiß leider nicht warum.


    Hier ist meine mainActivity, die zu Beginn die expanded Listview anzeigt:


    Nachdem ein item aus der listview ausgewählt wurde, wird eine 2. activity "Gameplay" geöffnet, welches die waffe anzeigt:

    Mein Code ist nicht gerade effizient geschrieben, aber das wichtige ist das es ersteinmal funktioniert.
    So, also wenn ich die app starte, bekomme ich im Log folgendes:


    Soweit so gut. Wenn ich nun eine waffe auswähle, erhalte ich im Log das hier:



    die aktivity wird zwar ausgefürht und funktioniert auch wenn ich auf die imageview klicke, aber laut Log wird der Zyklus ausgeführt dann beendet und erneut gestartet. Warum eigentlich und woran liegt das? :whistling: :whistling:


    Sry das ich soviel gepostet habe. Möchte euch halt nur den überblick besser verschaffen. Hoffentlich waren meine Fragen verständlich. Falls nicht, bitte fragen :)
    Falls diese Frage(n) geklärt sind, würde ich dann mein 2. Anliegen hier posten.


    Ansonsten freue ich mich schon mal auf eure hilfen/tipps und bedanke mich im voraus. :thumbup:



    Viele Grüße

  • Naja, Dein Quellcode ist in keiner Weise vollständig.
    Die Logausgaben, die Du uns da präsentierst, werden im Quellcode nirgends gezeigt. Ergo wissen wir auch nicht, welche Dinge Du uns weiterhin verschweigst.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hallo Marco,


    danke für deine antwort. Ich wollte ja zu Beginn den gesamten Quellcode posten, allerdings können nur 10.000 Zeichen (?) max. gepostet werden. Daher musste ich einiges kürzen. Die Methoden die ich nicht vollständig gepostet habe, waren meines Erhachtens nicht relevant für die Log-Ausgaben.


    Ich hab nichts zu verheimlichen. Würde jede Zeile hier posten. Was wird denn benötigt?

  • Hier noch eine Ergänzung zu den Qodes. In beiden Klassen sehen die Methoden für die Logausgaben wie folgt aus:


    In der MainActivity:


    In der Klasse GamePlay:


  • Also in dem Fall könntest Du dann höchstens das Projekt bei GitHub (o.Ä.) hoch laden.
    Wobei 10.000 Zeilen schon derbe viel sind. Zu viel, wenn Du mich fragst…


    Versuch mal ein Testprojekt zu erstellen, das auf die elementaren Dinge gekürzt ist.
    Also erste Activity laden, zweite Activity aufrufen, Logausgaben zur Nachverfolgung der Cycles.


    Ist Dir das nicht möglich, liegt Dein Problem irgendwo in den Tiefen Deines Codes.
    (Insofern wäre ein erstes Effizienter Schreiben eine gute Möglichkeit zur Schadensbegrenzung.)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • 10.000 Zeilen sind natürlich extrem viel. Aber wenn ich mich nicht irre waren es nicht Zeilen sondern eher Zeichen oder!?


    Eine Nachverfolgund des Lifecycles mit einem Testprojekt habe ich bereits durchgeführt Marco. Lief ganz normal wie es sollte.


    ich habe die Klassen als zip-Anhang zu diesen Beitrag hinzugefügt. Die Layout-Datein sind auch enthalten. Eventuell wäre das so hilfreich.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!