【发布时间】:2017-08-24 12:56:44
【问题描述】:
代码示例来自一个应用程序,该应用程序使用服务在专用于该服务的线程上执行一些任务。当 Android 设备改变方向并且 MainActivity 重新创建自己时,它会再次调用 Service 的 OnCreate(),这反过来又会创建另一个线程。该线程旨在无限运行,这会创建多个线程,从而导致问题。
public class myService: Service
{
Java.Lang.Thread serviceThread;
public override OnCreate()
{
serviceThread = new Java.Lang.Thread(infiniteLoop);
if(serviceThread.GetState != "RUNNABLE")
{
serviceThread.Start();
}
}
}
我已尝试将其设为全局,但编译器不同意无限循环:
Java.Lang.Thread serviceThread = new Java.Lang.Thread(infiniteLoop);
我尝试了很多东西,但我完全没有想法。我想我应该得到一些帮助。
【问题讨论】:
-
您是否尝试过使用应用程序变量来查看服务是否正在运行?
-
@JordyDieltjens 你能告诉我如何检查这个吗?
-
在我的回答中,我展示了如何创建应用程序变量以及如何使用它。但我认为York Shen 他的回答比我的好很多
标签: android multithreading xamarin service