0

내 애플리케이션에서 Android에서 동기화 어댑터 서비스를 만들려고합니다. 앱이 종료되면 백그라운드에서 실행됩니다.IBM 모바일 우선 : sendActionToJS가 Android에서 백그라운드 서비스로 작동하지 않습니다.

이 서비스는 WL.getInstance(). sendActionToJS()를 호출하여 js에 컨트롤을 보냅니다.

내가 사용하고 있습니다 :

WL.App.setKeepAliveInBackground(true); 

방법을 나는 애플 리케이션이 살해 된 경우에도 WL에 인스턴스를 사용할 수 나는이 방법을 사용하여 백그라운드에서 살아 응용 프로그램을 유지하기 위해.

onSync.java :

try { 
     JSONObject data = new JSONObject(); 

     data.put("isConnected", true); 

     data.put("connRes", "MOBILE"); 

     WL wl = WL.getInstance(); 

     if(wl!=null){ 

      L.e("WL is not null"); 

      wl.sendActionToJS("isConnected", data); 
     } 
     else{ 
      L.e("WL is null"); 
     } 


    } 

    catch (Exception e) { 
     // TODO: handle exception 
     e.printStackTrace(); 




    } 

main.js :.

WL.App.setKeepAliveInBackground(true, options); 

WL.App.addActionReceiver("MIActionReceiverId", function actionReceiver(received){ 

    console.log('MIActionReceiverId . '+JSON.stringify(received)); 



    else if(received.action == 'isConnected') { 
     //Connectivity manager 
     console.log('isConnected. '); 

     var isConnected = received.data.isConnected; 
     console.log('isConnected. '+isConnected); 

    } 




    } 

WL.getInstance() sendActionToJS() 메소드는 아무것도 어느 ​​쪽도 수신되지 않은 예외 addActionReceiver main.js에 던지는되지 않습니다 아무것도.

이 문제는 앱이 종료되고 모든 것이 정상적으로 작동하는 동안 백그라운드에서 실행될 때 발생합니다.

답변

1

이전 질문에서 언급 한 것처럼 MobileFirst Android SDK에는 안드로이드 서비스 또는 다른 방식으로 실행하기위한 공식적인 지원이 없습니다.이 컨텍스트에서 사용하려고하는 SDK의 일부 측면이 작동하고 일부는 그렇지 않을 수도 있습니다.

또한 sendAction API를 사용하는 것이 정확하거나 가능하지 않다고 생각합니다.