如何在Android应用中创建绑定服务?

时间:2017-08-22 08:25:51

标签: c# android android-service portable-class-library

我基本上正在开发一个使用Portable Class Library的Xamarin.Forms(跨平台)项目。而且我知道我无法从PCL运行后台服务,所以我需要单独进入每个平台。现在我陷入了android。

我需要创建的是绑定服务。因此,当我的应用程序启动时,我有2个按钮,启动和停止(禁用)。我点击开始(启动按钮变为禁用并启用停止按钮)它使用MessagingCenter向我的Android平台发送一条消息,使用Intent并绑定它来启动服务。

所以我在MainActivity.cs中有这个

MessagingCenter.Subscribe<StartAppBoundServiceMessage>(this, 
"StartServiceMessage", message =>
{
    Intent objXPathServiceIntent = new Intent(this, typeof(XPathService));
    StartService(objXPathServiceIntent);

    connection = new XPathServiceConnection(this);
    BindService(objXPathServiceIntent, connection, Bind.AutoCreate);

});

StartAppBoundServiceMessage是我PCL中的一个简单类。

现在当我离开我的应用程序时(使用主页按钮或后退按钮或者可能是来电),我希望它能解除我的服务 - 但我的服务仍然应该继续。这就是我使用StartService()启动服务的原因。但是当它解除绑定时,它应该保留从我的UI设置的某些东西(比如服务中使用的设置)。

下次当我回来时,我的应用程序应该检查我的服务是否正在运行,如果是(它必须再次绑定它,让我进行设置更改或通过单击停止按钮等来停止服务)。< / p>

我有两个问题:

  1. 当我的应用程序离开前台时,我对Unind的位置感到困惑,再次回来时我会在哪里绑定。我知道如何检查我的服务是否已经运行,但我不知道在哪里检查它。因为后退按钮调用onCreate和主页按钮调用onResume。

  2. 如何在我的服务中保留这些设置,并在我复出时将它们放回我的用户界面。

  3. PS:我的所有服务方法都将从我的PCL项目中调用。

    注意:要求有点像音乐播放器,但应用程序不在其附近。

0 个答案:

没有答案