我现在有这个问题已经有几天了,我在互联网上做了很多搜索,但没有找到适用于我的情况。
我有服务:
namespace Demo_Service_Name
{
public static class MyGlobals
{
...
public static int DurSelection;
}
class Service_Connection : Java.Lang.Object, IServiceConnection
{...}
public class Demo_Service : Service
{
public void Setup_Service(int DSel)
{
MyGlobals.DurSelection = DSel;
}
public int Get_Duration_Selection()
{
return MyGlobals.DurSelection;
}
...
}
}
我的Activity
是这样的:
using Demo_Service_Name
namespace Demo_Activity
{
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
....
ThisService = new Intent(this, typeof(Demo_Service));
if (isMyServiceRunning())
{
demoServiceConnection = new Neural_Service_Connection(this);
isBound = BindService(ThisService, demoServiceConnection, Bind.none);
int servVar = binder.GetDemoService().Get_Duration_Selection();
}
}
protected void OnStartMyService()
{
....
StartService(ThisService);
isBound = BindService(ThisService, demoServiceConnection, Bind.none);
binder.GetDemoService().Setup_Service(A_Certain_Number);
}
}
}
所以我想做的是从活动启动服务,绑定它,传递一个值,关闭活动,重新打开活动,并在服务运行时将变量读回活动。
所有工作都应该这样,除非我关闭活动时,服务变量中的值会被重置。
你觉得我错过了什么?
PS。我确信Service.OnDestroy
尚未被调用