Hallo
Wenn du von einer Activity zu einer anderen willst sagte ich das dies mittels einem „Intent“ geht.
Ich glaube du hast noch nicht verstanden was eine Activity ist.
Eine Activity ist nicht nur eine Klasse sondern es ist quasi die Umgebung in der deine Bildschirm Seite läuft.
Die kannst du nicht selber mittels einer Instanz und Kostrucktor aufrufen.
Das siehst du doch schon daran das du für eine von Activity oder AppCompatActivity abgeleitete Klasse keine Konstruktor haben du dort auch keinen anlegen kannst .
Die Kasse ist so zusagen dein Programm Anfang. Und wird vom System aufgerufen gestartet.
(auch der Start deiner App erfolgt vom system selber mit einem Intent)
Mit einen Intent teilst du dem System mit das du die aktuelle Activity verlassen möchtest und ein neue starten willst. Intest sind System Nachrichten. Es gibt es verschiedene arten von Intens.
Du brauchst einen Expliziten Intent.
Beim Verlassen der Activity wird aber auch der Speicher vor der Klasse wieder freigegeben, und deine Variablen sind somit lehr wenn du wieder zurück gehst . Denn es wird auch wieder die onCreate Methode aufgerufen. Du kannst dir eine Activity wie ein kleines eigenes Programm in deiner App vorstellen was immer wieder neu gestattet wird wenn du von einer Avtivity zu anderen gehst.
Schaue dir auch mal den LifeCycle einer Activity an . Dann verstehst du es vielleicht besser.
Starte deine Activity so.
Intent intent = new Intent(this , MainActivity.class);
startActivity(intent);
So nun einige Fragen zu deinem Code.
Wie bist du überhaupt von deiner MainActivity in die „gameOver“ Klasse gekommen? Da du Intent nicht kennst denke ich das du es nicht so wie ich beschrieben habe gemacht hast.
Nur als Tipp Klassennamen schreibt man Groß.
In welcher Klasse ist eigentlich deine gameSchleife?
Wieso macht du das "setContentView(gameView); " und was ist gameView ?
Hier gehört eigentlich ein Layout rein und keine Instanz einer Klasse.
Also eigentlich müsste das so aussehen.
In jeder GameActivity hast du ein Layout in xml. In dem Layout erstellst du eine View von deiner eigenen View „GameView“ mit den üblichen Eigenschaften Höhe, Weite, ID ,….
<dein_Package.GameView
android:id="@+id/ganeView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Dieses Layout wird wie üblich in die Activity mit setContentView geladen.
So nun brauchst du die Instanz auf deine eigene View die hoslst du die wie üblich mit findViewById genau wie ZB. einer TextView.
GameView mGameView = (GameView) findViewById(R.id.deineID);
So nun hast eine Instanz und kannst auf deine Klasse zugreifen.
Willst du nun in der Game Klasse etwas ändern oder abfragen macht man das über gett und Setter Methoden in der klasse um von der Activity mittels der eben ermittelten Instanz zuzugreifen. Oder wenn die Variablen Public sind auch direkt.
Auch in der Klasse (Activity) ist deine Zeitschleife und der Rück Sprung zur Mainactivity .
Den Start der GameActivit auch natürlich mit Intent . Willst du dem Intent noch etwas mitgeben geht das auch entweder über putExtra oder das Bundle. Das Extra musst du natürlich in der anderen Activity wieder aus dem Intent selber raushohlen. Denn wie ich schon am anfangs sagte sind Activitys abgeschlossenere Einheiten und wenn du eine verlassen hast kannst du nicht mehr auf Variablen der alten zugreifen. Deshalb die Übergabe mit putExtra. Schau dir das in der Doku an.