当应用程序被终止时,首先在后台服务中使用 IBM 移动 Android sdk。

Using IBM mobile first Android sdk in Background service when the app is killed.

我们正在尝试在 Android 中创建一个同步适配器服务,当应用程序被终止时,它将 运行 在后台运行。

此服务将从 JsonStore 获取一些数据并将与服务器同步。

代码:

 try {

        URI adapterPath = new URI("/dummy/adapter");

        WLResourceRequest request = new WLResourceRequest(adapterPath,WLResourceRequest.POST);

        request.send(new AdapterListener(new CallbackAdapter() {

            @Override
            public void onFetch(String response) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onError(String error) {
                // TODO Auto-generated method stub

            }
        }));

    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

问题:

  1. 当我们尝试 运行 在不同进程中提供服务时,我们在行 (WLResourceRequest request = new WLResourceRequest(adapterPath,WLResourceRequest.POST);) 处收到错误 WL.getInstance 应该在 WL.createInstance 之后调用,但是我们不能在服务中创建 WL 实例,因为它需要一个 ACTIVITY.

  2. 的实例
  3. 当我们尝试在同一进程中 运行 服务时,应用程序当前正在 运行ning,一切正常,直到应用程序 运行ning但是如果我们终止应用程序,就会发生与第 1 点相同的事情。

问题:

  1. 有没有办法在服务中创建 WL 实例。

  2. 有没有办法让 WL 实例永远初始化,即使用户终止了应用程序。

  3. 有没有办法让我们的应用程序 运行 永远初始化 WL 实例。

运行 当前不支持 Android 服务中的 MobileFirst Android SDK。此功能有一个开放的功能请求,所以如果您希望实现这一点,请随时投上您的一票。在此处搜索:https://mobilefirstplatform.ibmcloud.com/help/

我已经开始工作了,您只需添加

WL.App.setKeepAliveInBackground(true);

进入 js 文件,WL 实例将与 Android 中的同步适配器和服务一起工作。