0

私たちはAndroidで同期アダプタサービスを作ろうとしています。これは、アプリが殺されたときにバックグラウンドで実行されます。アプリが死亡したときにIBMモバイルの最初の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((行でエラーが出ますWLI.getInstanceはWL.createInstanceの後に呼び出されるべきですが、ACTIVITのインスタンスが必要なためサービスでWLインスタンスを作成することはできませんY.

  2. 我々はアプリが現在実行されているのと同じプロセスでサービスを実行しようとすると、すべてが正常untileアプリが実行されている作品が、我々はポイント1

  3. で起こっているのと同じことが起こるのアプリを殺す場合

質問

  1. は、我々はサービスでWLのインスタンスを作成することができる方法はあります。

  2. ユーザーがアプリを強制終了しても、WLインスタンスが永遠に初期化されるようにする方法はありますか?

  3. WLインスタンスを永遠に初期化してアプリを永遠に実行させる方法はありますか?

+0

正確なエラーメッセージとスタックトレースを提供してください。 –

答えて

1

私はそれはあなたがJSファイルとWLインスタンスに

WL.App.setKeepAliveInBackground(true); 

を追加する必要があるすべては、Androidで同期アダプタおよびサービスで動作します、作業ました。

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を参照してください。 –

関連する問題