2017-10-05 51 views
0

在我使用Android應用程序的經驗中,看到很多匿名內部類並不罕見。現在我正在開發一個自動更新功能,並在下面有一些代碼示例。如何在java應用Android應用程序中使用匿名內部類時使代碼更容易閱讀?

@Override 
public void onStart() { 
    super.onStart(); 

    IsUpdateAvailableTask task = new IsUpdateAvailableTask(){ 

     @Override 
     protected void onPostExecute(Boolean updateAvailable) { 
      super.onPostExecute(updateAvailable); 
      if (updateAvailable) { 
       UpdateAvailableDialogFragment dialogFragment = UpdateAvailableDialogFragment.newInstance(); 
       dialogFragment.show(getFragmentManager(), UpdateAvailableDialogFragment.class.getSimpleName()); 
       TaskFragment.updateDialogShown = true; 
      } 
     } 

    }; 

    task.execute(mParameters.getHostUrl(), mParameters.getPackageName(), mParameters.getVersionName()); 
} 

我這個方法的問題是,代碼hadoukens變得非常頻繁,只是看看代碼很難。我想知道是否有任何方法可以提高代碼的可讀性,以減少哈代或至少分解它。由於異步任務不是接口,Lambdas在這種情況下不起作用。

+0

如何寫入較舊的api級別可以防止使用lambdas? – Oleg

+0

對不起,我誤解了爲什麼我不能使用lambdas。在問題中做了修正。 –

+0

shmakova回答說,即使你寫了一個庫,仍然可以使用lambda表達式。如果你仍然不想,那就沒有魔力了,而不是你可以做的示例代碼:1.使'task'成爲一個字段。 2.使用內部類3.使用本地類。 4.在方法中創建'task'。可能還有其他一些選擇。 – Oleg

回答

0

您可以在庫代碼中使用lambdas。 對於它,您可以使用retrolambda gradle插件,或者您可以使用新的Android Studio 3.0,其中java 8的功能已經支持。傑克在今年春天被棄用了。

相關問題