gpt4 book ai didi

java - 如何从按钮重新启动 java/Android 中的线程?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:38 26 4
gpt4 key购买 nike

我在 java/Android 中有一个这样的线程:

Handler handler = new Handler() {

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
update_i();
}
};



@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();

Thread myThread = new Thread(new Runnable() {
public void run() {
while (true) {
try {
handler.sendMessage(handler.obtainMessage());
Thread.sleep(timer);
} catch (Throwable t) {
}
}
}
});

myThread.start();
}

当我运行我的应用程序时线程工作正常。但我想用一个按钮启动/重新启动线程。

Button.OnClickListener StartButtonOnClickListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {

//start/restart the thread
}
};

如果我将线程复制到按钮中,则每次用户单击按钮时我都会创建一个新线程。我想在用户第一次点击按钮时运行线程,如果用户第二次点击按钮,“杀死它”并从头开始(我不想启动第二个线程)。

最佳答案

我认为 Colin 说得对,你不能只是重新启动,你需要创建一个新实例,如果线程仍在运行,中断函数将停止正在运行的线程。

我建议你做一个内部类,代替内联实现,这样会更容易理解。

if(myThread.isAlive()){
myThread.interrupt();
}
myThread = new MyThread();
myThread.start();

希望对你有帮助

关于java - 如何从按钮重新启动 java/Android 中的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com