Обновление Android Jetpack от 20 мая 2020

Обновление Android Jetpack от 20 мая 2020

Kirill Rozov

Полный список изменений здесь

WorkManager 2.4.0-beta01

Изменения по сравнению с 2.3.0
  • Планировщик WorkManager стал более функциональным
  • Добавлена возможность получить WorkInfo с помощью WorkQuery
  • Поддержка RxJava 3
  • Новые правила для Android Lint
  • Возможность получения диагностической информации о работе WorkManager
  • Изменения в поведения
  • Исправление багов
Изменения по сравнению с 2.2.0
  • Поддержка Dynamic Feature
  • Kotlin DSL для описания графа
  • Новые возможности deep linking
  • Улучшения в работе с DrawerLayout
  • NavBackStackEntry теперь имеет доступ к  SavedStateHandle для сохранения данных
  • Улучшения в тестирование NavController с помощью TestNavHostController
  • Исправление багов

Lifecycle 2.3.0-alpha03

Bundle previousState = savedStateHandle.get("custom_object");
if (previousState != null) {
    // Convert the previousState into your custom object
}
savedStateHandle.setSavedStateProvider("custom_object", () -> {
    Bundle savedState = new Bundle();
    // Put your custom object into the Bundle
    return savedState;
});
  • Новое API ViewTreeViewModelStoreOwner.get(View), которое позволяет получить ViewModelStoreOwner для указанного View. Может быть полезно если вам надо иметь ViewModel, связанную с View. Например элементом списка или собственной View.
  • Исправление багов

SavedState 1.1.0-alpha01

  • Новое API ViewTreeSavedStateRegistryOwner.get(View), которое позволяет получить SavedStateRegistrty для указанного View.
  • Добавлен артефакт savedstate-ktx

Activity Version 1.2.0-alpha05

AppCompat 1.3.0-alpha01

public class MyRichContentReceiver 
   extends TextViewRichContentReceiverCompat {

       private Set<String> allMimeTypes = 
          Set.of("text/*", "image/gif", "image/png", "image/jpg");

       @Override
       public Set<String> getSupportedMimeTypes() {
           return allMimeTypes;
       }

       @Override
       public boolean onReceive(
          TextView textView, ClipData clip, int source, int flags
       ) {
           if (clip.getDescription().hasMimeType("image/*")) {
               return receiveImage(textView, clip);
           }
           return super.onReceive(textView, clip, source);
       }

       private boolean receiveImage(TextView textView,ClipData clip) {
           // app-specific logic to handle the content URI in the clip 
       }
   }


  • Исправление багов

Core 1.4.0-alpha01

  • Добавлено общее API для вставки rich content (например картинок)
  • Добавлен бэкпорт android.os.Process.isApplicationUid(int)
  • Добавлен бэкпорт LocusId
  • Исправление багов

Fragment 1.3.0-alpha05

Также новые версии DrawerLayout, CustomView, SlidingPaneLayout достигли стадии RC, а Test 1.3.0 - новой Beta


Report Page