我在service中初始化一個新的Thread。但是當我重啟service時,新的被創建了,同時系統也崩潰了,因為我使用了照相機功能。如何讓線程中只有一個實例呢?
當關閉在線程中創建的service時。線程也同時被關閉嗎?
你應該使用一個lock或者一個靜態變量:
private static boolean isThreadRunning;
在你的service裡寫入以下方法:
if(isThreadRunning)
return;
Thread t=new Thread(new Runnable(){
protected void run(){
isThreadRunning=true;
while(yourcondition){
//thread代碼
}
isThreadRunning=false;
//在這個個線程結束後,你想啟動另一個線程,你應該在這貼出信息,來啟動另外一個線程 }
});