2015-09-20 42 views
-2

無法找到以下哪種使用AsyncTask的技術更好(性能明智,內存管理,設計明智)的問題的答案?AsyncTask類VS AsyncTask對象

對象的實例

class AsyncTaskObjectExample { 

    protected AsyncTask<String, Integer, Boolean> asyncTaskObject = new AsyncTask<String, Integer, Boolean>() { 
     @Override 
     protected Boolean doInBackground(String... params) { 
      /* YOUR PROCESSES */ 
      return true; 
     } 
    }; 
} 

類的例子

class AsyncTaskClassExample { 

    class AsyncTaskClass extends AsyncTask<String, Integer, Boolean> { 
     @Override 
     protected Boolean doInBackground(String... params) { 
      /* YOUR PROCESSES */ 
      return true; 
     } 
    } 
} 

回答

3

兩個你提到的類。第一個是匿名內部類。當你這樣寫:

new AsyncTask<String, Integer, Boolean>() { 
     @Override 
     protected Boolean doInBackground(String... params) { 
      /* YOUR PROCESSES */ 
      return true; 
     } 
    }; 

這成爲延伸AsyncTask匿名內部類。

你可以在這裏閱讀更多關於這裏的匿名內部類:https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

您可以嘗試什麼是更容易理解你。

+0

你知道內存泄漏嗎? –

+0

我知道匿名內部類。但你看,在課堂情景中,我們正在繼承。這可能意味着從內存管理的角度來看。另外,我們可以創建'AsyncTaskClassExample'的函數級對象,但'AsyncTaskObjectExample'只能是一個類級別的對象。這意味着什麼? –

+0

@PareshMayani很確定這只是一個問題,如果你傳遞一個Activity並在其中存儲對它的引用。 – PPartisan