[英]How can I use onRestart() to unpause/restart a thread in an Android Activity?
[英]How can I restart a thread in java/Android from a button?
我在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
}
};
如果我將線程復制到按鈕中,我每次用戶點擊按鈕時都會創建一個新線程。 我希望在用戶第一次單擊按鈕時運行該線程,“kill it”並從頭開始,如果用戶第二次單擊該按鈕(我不想啟動第二個線程)。
我認為Colin是wright你不能重新啟動你需要創建一個新實例,如果仍在運行,中斷函數將停止正在運行的線程。
我建議你創建一個內聯類,內聯實現的instand,它將使它更容易理解。
if(myThread.isAlive()){
myThread.interrupt();
}
myThread = new MyThread();
myThread.start();
希望這可以幫助
您無法重新啟動線程。
從文檔:
Throws IllegalThreadStateException
if the Thread has been started before
您可以終止前一個線程,但最后您必須創建線程的第二個實例。
資源:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.