/ / Auf Android, wie man einen Faden laufen lässt, bis er vom Benutzer angehalten wird? - Java, Android, Multithreading

Wie führe ich auf Android einen Thread so lange weiter, bis er vom Benutzer gestoppt wird? - Java, Android, Multithreading

Danke für Ihre Aufmerksamkeit.

Hier ist das Szenario: Meine Aktivität besteht darin, eine einfache Simulation (ein Spiel, das von zwei AIs gegeneinander gespielt wird) mehrere Male zu machen und es so lange zu machen, bis der Benutzer einen Knopf drückt. Die erhaltenen Daten werden verwendet, um die AI besser zu machen (ich habe diesen Teil bereits codiert und es scheint zu funktionieren).

Ich möchte, dass die Aktivität grundlegende Informationen anzeigt, z. B. wie viele Spiele bereits gespielt wurden.

Ich bin ziemlich neu in der Android- und Java-Entwicklung. Ich weiß, dass ich einen separaten Thread verwenden muss, um die Simulationen durchzuführen, aber ich weiß nicht, wie ich damit umgehen soll, da ich bisher noch nie separate Threads verwendet habe. Was mich nervt: Hat der neue Thread Zugriff auf öffentliche Methoden und Variablen der Klasse, mit der er gestartet wurde? Wenn das so ist, wie ?

Ich habe bereits die Dokumentation zu Threads auf der offiziellen Android-Entwickler-Website gelesen.

Antworten:

0 für die Antwort № 1

Eine Instanz einer Klasse ist nicht an einen Thread gebundenwie der Haupt-Thread, der es erstellt hat. Ein Thread, der innerhalb einer Methode in einer Klasse erstellt wurde, hat Zugriff auf die privaten Mitglieder dieser Klasse. Es hat Zugriff auf öffentliche Mitglieder in allen Instanzen, die es von seinem Ersteller erhält, oder kann es von einer öffentlichen Methode an anderer Stelle erhalten (z. B. ein statischer oder der Anwendungskontext).

Also beim Multithreading muss man vorsichtig seinZwei Threads können gleichzeitig auf die gleichen Methoden und Variablen zugreifen, und Sie können nie sicher sein, welche zuerst an erster Stelle steht. Am sichersten ist es, es so zu gestalten, dass nur ein Thread in die Variablen "schreibt" und andere nur lesen.