2016-02-16 31 views
2

我應該把我的翻新調用內部和Android服務類? 我的應用程序調用的IAM內部改造部分班級例如像下面我應該把我的翻新調用內部和Android服務類?

Call<ArrayList<CantItem>> mycall = retrofitcalls.getCanteenItems("url.php", urldatamap); 
     mycall.enqueue(new Callback<ArrayList<CantItem>>() { 
      @Override 
      public void onResponse(Response<ArrayList<CantItem>> response, Retrofit retrofit) { 

       int code = response.code(); 
       Log.d("code ", String.valueOf(code)); 

       if (code == 200 || code == 201) { 
        ArrayList<CantItem> cantitems = response.body(); 
        Log.d("retrieved", "returned items"); 

        savedToSharedPrefs(createString(cantitems)); 
        cantmap = createMap(cantitems); 
        presenter.updateView(cantmap); 
       } 
      } 

      @Override 
      public void onFailure(Throwable t) { 
       Log.d("couldnt retrieve", "failure"); 
      } 
     }); 

我想知道我應該把一個Android服務類中撥打電話?因爲我的翻新電話無論如何都是異步運行的?所看到的每個教程似乎都可以在任何課程或活動中運行。我沒有看到任何人使用服務。我不是100%確定目前最好的方法。謝謝

+0

您爲什麼認爲服務是更好的選擇? – Blackbelt

+1

也許是由於它保護線程免於被操作系統殺死的事實?但我不是100% –

+0

我不知道答案。這就是爲什麼我問。大聲笑 –

回答

5

這真的取決於您的要求。即使您的應用程序被殺害,您是否需要webservice調用的結果?

如果是,則將其放入服務中。

如果不是,那麼只需從您的活動中啓動一些內容。

+0

我也試圖把它放入一個服務,但當我的應用程序關閉時,我的服務也是如此。你能告訴我發生了什麼事嗎?此外,如果您認爲服務在應用程序關閉時不會被破壞,那麼您寫了多少額外的代碼來執行此操作? –

+0

此StackOverflow問題可以解答您的問題:https://stackoverflow.com/questions/16651009/android-service-stops-when-app-is-closed – jbarat

相關問題