0

우리는 앱이 죽을 때 백그라운드에서 실행되는 Android에서 동기화 어댑터 서비스를 만들기 위해 노력하고 있습니다.앱이 종료 될 때 백그라운드 서비스에서 IBM mobile first Android sdk 사용.

이 서비스는 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 요청 = 새로운 WLResourceRequest ((라인에서 오류가 발생합니다 adapterPath, WLResourceRequest.POST);) WL.getInstance는 WL.createInstance 이후에 호출되어야하지만 ACTIVIT의 인스턴스가 필요하기 때문에 서비스에서 WL 인스턴스를 생성 할 수 없습니다 와이.

  2. 우리는 앱이 현재 실행되고있는 동일한 프로세스에서 서비스를 실행하려고하면 다 잘 untile 응용 프로그램이 실행되고 있지만, 우리는 응용 프로그램 같은 일을 죽이는 일 경우 지점에서 일어나고있는 일 1.

질문 :

  1. 는 방법 우리가 서비스 WL 인스턴스가 생성 할 수 있습니다입니다.

  2. 사용자가 앱을 죽이더라도 WL 인스턴스를 영원히 초기화 할 수있는 방법이 있습니까?

  3. WL 인스턴스를 영원히 초기화하여 앱을 영원히 실행할 수있는 방법이 있습니까?

+0

정확한 오류 메시지와 스택 트레이스를 제공해주십시오. –

답변

1

을 나는 모든 당신은 안드로이드에서 동기화 어댑터 및 서비스와 함께 작동합니다 JS 파일과 WL 인스턴스로

WL.App.setKeepAliveInBackground(true); 

를 추가 할 필요, 작업을 얻었다.

0

Android 서비스에서 MobileFirst Android SDK를 실행하는 것은 현재 지원되지 않습니다. 이 기능에 대한 공개 기능 요청이 있으므로이 문제를 해결하려면 투표를 추가하십시오. 여기에 검색 https://mobilefirstplatform.ibmcloud.com/help/

+0

좋습니다.하지만 https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/t_keeping_app_running_in_background.html은 어떻게됩니까? –