Java 如何控制同一对象的多个线程?
下面是我在安卓系统中的点击按钮Java 如何控制同一对象的多个线程?,java,android,Java,Android,下面是我在安卓系统中的点击按钮 protected onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) public void onClick(View arg0) { if(connectThread!=null) {
protected onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState)
public void onClick(View arg0)
{
if(connectThread!=null)
{
connectThread.kill();
}
connectThread=new ConnectThread(device);
connectThread.start();
}
}
我在ConnectThread
类中运行了一个boolean
volatile变量,该变量默认为true,kill方法将其值设置为false。
问题是它仍然不工作,原因可能是在我的ConnectThread
run方法中,我正在创建另一个线程,但这不应该是问题,因为它是从run方法调用的,并且它将是ConnectThread
的子线程;在终止将自动取消的连接线程时
ConnectThread的kill方法
public void kill()
{
running=false;
}
public void run()
{
while(running)
{
}
}
运行ConnectThread的方法
public void kill()
{
running=false;
}
public void run()
{
while(running)
{
}
}
如果应用程序在您的设备上仍处于活动状态,并且您启动了第二个连接线程,则蓝牙设备可能不可用
我建议您仔细阅读。是否有一种方法,在单击第二个按钮时,上一个线程被拆除,新线程开始通信当我通过返回或转发暂停应用程序时,生命周期开始发挥作用,或者出现一个对话框,但问题是我仍然在当前活动中,并单击多个按钮发送相同数据的时间。我自己在连接的事件中找到了它,我调用kill方法停止它,单击method,我必须通过在线程中创建另一个将running设置为true的方法将其设置为true。