Java 在Android上,如何保持线程运行直到它';用户停止了什么?

Java 在Android上,如何保持线程运行直到它';用户停止了什么?,java,android,multithreading,Java,Android,Multithreading,谢谢你的关注 下面是一个场景:我的活动包括多次做一个简单的模拟(两个AI互相玩的游戏),并一直这样做直到用户按下一个按钮。获得的数据用于改进AIs(我已经对这部分进行了编码,它似乎正在工作) 我希望活动显示基本信息,如已经玩了多少游戏 我对Android和Java开发相当陌生。我知道我必须使用一个单独的线程来进行模拟,但我不知道如何处理它,因为到目前为止我从未使用过单独的线程。困扰我的是:新线程是否可以访问它开始使用的类的公共方法和变量?如果是,怎么做 我已经阅读了Android开发者官方网站上

谢谢你的关注

下面是一个场景:我的活动包括多次做一个简单的模拟(两个AI互相玩的游戏),并一直这样做直到用户按下一个按钮。获得的数据用于改进AIs(我已经对这部分进行了编码,它似乎正在工作)

我希望活动显示基本信息,如已经玩了多少游戏

我对Android和Java开发相当陌生。我知道我必须使用一个单独的线程来进行模拟,但我不知道如何处理它,因为到目前为止我从未使用过单独的线程。困扰我的是:新线程是否可以访问它开始使用的类的公共方法和变量?如果是,怎么做


我已经阅读了Android开发者官方网站上关于线程的文档。

类的实例不与任何线程绑定,比如创建它的主线程。 在类中的方法内创建的线程将有权访问该类的私有成员。它将在其创建者提供的任何实例中或从其他地方的公共方法(例如静态或应用程序上下文)获得的任何实例中访问公共成员


因此,使用多线程时,您需要小心,因为两个线程可能会同时访问相同的方法和变量,而且您永远无法确定哪一个线程会先到达。最安全的方法是将其设计为只有一个线程“写入”变量,其他线程只读取。

在单独的线程中创建一个钩子,检查它是否应该终止。有很多方法可以实现这一点,最简单的方法可能是使用静态变量,但我认为您的问题太广泛,无法给出一个好的答案。到目前为止,您尝试了什么?@popovitsj我尝试运行单独的线程,并创建一个通过单击按钮启动并完成活动的方法。但这似乎不对。。。另外,整个单独的线程是一个while(true)循环,看起来也不起作用。谢谢!这看起来很有用。我看看这能不能解决我的问题。