代碼示例來自使用服務在專用於該服務的線程上執行某些任務的應用程序。當Android設備改變方向並且MainActivity重新創建時,它會再次調用服務的OnCreate(),這又會創建另一個線程。該線程意味着無限運行,這會創建多個導致問題的線程。防止多次調用Android服務OnStart()從開始() - 再次使用相同的線程(Xamarin)
public class myService: Service
{
Java.Lang.Thread serviceThread;
public override OnCreate()
{
serviceThread = new Java.Lang.Thread(infiniteLoop);
if(serviceThread.GetState != "RUNNABLE")
{
serviceThread.Start();
}
}
}
我試圖讓這個全球性,但編譯器與infiniteLoop不同意:
Java.Lang.Thread serviceThread = new Java.Lang.Thread(infiniteLoop);
我已經嘗試了很多事情,但我完全江郎才盡。以爲我應該得到一些幫助。
您是否嘗試過使用應用程序變量來查看服務是否正在運行? –
@JordyDieltjens你能告訴我如何檢查這個嗎? – NikosD
在我的回答中,我展示瞭如何創建應用程序變量以及如何使用它。但我認爲約克沉他的回答比我的好很多 –