15. Januar 2019
WorkManager
WorkManager 1.0.0-beta02 wurde veröffentlicht. Diese Version enthält einige Fehlerkorrekturen.
Fehlerkorrekturen
- Es wurde ein Grenzfall behoben, bei dem regelmäßige Arbeiten mehrmals pro Intervall ausgeführt werden konnten. auf Geräten mit Android 6.0 (API-Level 23). b/121998363
- Fehler behoben:
ConcurrentModificationExceptionauf Geräten mit Android 5.1 (API) Stufe 22) oder niedriger ist. b/121345393 - Die fehlerhafte Ausführung von Arbeiten, wenn die Einschränkungen auf Geräten nicht erfüllt wurden, wurde behoben. mit Android 5.1 (API-Level 22) oder niedriger. b/122578012
- Die Bearbeitung von Aufgaben wurde optimiert, um in einigen Grenzfällen schneller zu arbeiten. b/122358129
- Es wurde eine Änderung hinzugefügt, um potenzielle Race-Bedingungen zwischen mehreren Instanzen zu beheben.
von
LiveData, die WorkManager verwendet. - Verschoben, um die
Room-Abhängigkeit1.1.1anstelle von1.1.1-rc01zu verwenden. diese Versionen identisch sind. b/122578011
19. Dezember 2018
WorkManager
WorkManager 1.0.0-beta01 wurde veröffentlicht. Diese Version enthält keine API-Änderungen. Künftig bleibt WorkManager API bis zur nächsten Version stabil, sofern kein kritisches Problem auftritt. Diese Version enthält einige Fehlerkorrekturen.
Fehlerkorrekturen
- Zuvor stornierte untergeordnete Elemente von erfolgreich abgeschlossenen übergeordneten Aufgaben werden nicht mehr ausgeführt. b/120811767
- Korrekt initialisierte Logging-Klassen, die hauptsächlich während Tests angezeigt werden
18. Dezember 2018
Navigation
Die Navigation „1.0.0-alpha09“ wurde veröffentlicht. Diese Version enthält wichtige API-Änderungen.
Weitere Informationen finden Sie unten im Abschnitt Nicht abwärtskompatible Änderungen.
Wir haben uns entschlossen, die Weiterentwicklung des
android.arch.navigation:navigation-testing Artefakt. Es hat sich zwar bewährt,
hilfreich für interne Tests von NavController. Wir empfehlen dringend,
alternative Teststrategien, z. B. die Simulation der NavController-Instanz
um zu überprüfen, ob die richtigen navigate()-Aufrufe ausgeführt werden. Dieses
wird ausführlich in der
Single Activity Talk beim AndroidDevSummit 2018
Außerdem werden wir weitere Dokumente
zu Tests entwickeln,
mit Navigation.
Neue Funktionen
MenuItems mitmenuCategory="secondary"werden nicht mehr als Antwort angezeigt. Stack in Verbindung mitNavigationUI-Methoden. b/120104424- In
AppBarConfigurationkönnen Sie jetzt ein Fallback festlegenOnNavigateUpListener-Instanz, die aufgerufen wird, wennnavController.navigateUp()Folgendes zurückgibt:falseb/79993862 b/120690961
Nicht abwärtskompatible Änderungen
- Wenn ein
<argument>mit einemargType="reference"verwendet wird, wird die Navigation nicht mehr aktiviert. parst die Referenz und gibt stattdessen die Rohressourcen-ID selbst an. b/111736515 onNavDestinationSelected()jetzt standardmäßig zum Startziel Ihrer Navigationsgrafik zurück, damit sie mit densetup-Methoden konsistent sind. HinzufügenmenuCategory="secondary"zu deinemMenuItem, damit der Back-Stack nicht geplatzt wird. aosp/852869- Die
fromBundle()-Methoden der generiertenArgs-Klassen verwenden jetzt eine Nicht-Null-WerteBundleanstelle einerBundle, für die Nullwerte zulässig sind aosp/845616
Fehlerkorrekturen
- Argumente werden jetzt korrekt aus Deeplinks als die richtige
argTypegeparst. statt immer als Zeichenfolgen, b/110273284 - Die Navigation exportiert ihre öffentlichen Ressourcen jetzt korrekt. b/121059552
- Safe Args ist jetzt mit dem Android-Gradle-Plug-in 3.4 Canary 4 und höher kompatibel. b/119662045
12. Dezember 2018
WorkManager
WorkManager 1.0.0-alpha13 wurde veröffentlicht. Diese Version enthält eine kleinere API-Änderung, die für einige Nutzer von Kotlin hilfreich ist.
API-Änderungen
androidx.work.Resultwurde zu einer inneren Klasse vonListenableWorkerverschoben. Dadurch werden Refaktorierungskonflikte mit der übergeordnetenResult-Klasse von Kotlin vermieden. Dies ist eine funktionsgefährdende API-Änderung. b/120564418
Nicht abwärtskompatible API-Änderungen
androidx.work.Resultwurde zu einer inneren Klasse vonListenableWorkerverschoben.
6. Dezember 2018
Paging
Paging 2.1.0-rc01 wurde ohne Änderungen gegenüber 2.1.0-beta01 freigegeben.
Navigation
Die Navigation „1.0.0-alpha08“ wurde veröffentlicht. Diese Version enthält wichtige API-Änderungen.
Weitere Informationen finden Sie unten im Abschnitt Nicht abwärtskompatible Änderungen.
Neue Funktionen
- Bei Verwendung mit
NavigationUI-Methoden werden Ziellabels jetzt automatisch Ersetzen Sie{argName}Instanzen inandroid:labeldurch das richtige Argument b/80267266 - Die Navigation hängt jetzt von der Support Library 28.0.0 ab b/120293333
Nicht abwärtskompatible Änderungen
OnNavigatedListenerwurde inOnDestinationChangedListenerumbenannt. b/118670572OnDestinationChangedListenerübergibt jetzt auch dieBundlevon Argumenten. aosp/837142- Die Attribute
app:clearTaskundapp:launchDocumentsowie die zugehörigen zugehörigen wurden entfernt. Verwenden Sieapp:popUpTomit dem Stamm der Grafik, um entfernen Sie alle Ziele aus dem Back Stack. b/119628354 ActivityNavigator.Extrasverwendet jetzt einBuilder-Muster und bietet folgende Möglichkeit:Intent.FLAG_ACTIVITY_-Flags festlegen aosp/828140NavController.onHandleDeepLinkwurde inhandleDeepLinkumbenannt. aosp/836063- Viele Klassen und Methoden, die nicht für abgeleitete Klassen vorgesehen sind, z. B.:
NavOptions,NavInflater,NavDeepLinkBuilderundAppBarConfiguration, wurden alsfinalfestgelegt. aosp/835681 - Die verworfene Methode
NavHostFragment.setGraph()wurde entfernt aosp/835684 - Die eingestellte Methode
NavigationUI.navigateUp(DrawerLayout, NavController)wurde entfernt. aosp/835684 - Die Fragmenterstellung wurde in
FragmentNavigatorverschoben, um das Erstellen von Fragmenten zu erleichtern die Fragmenterstellung an eineFragmentFactorydelegieren. b/119054429 - Der Konstruktor für
NavGraphNavigatornimmt keinenContextmehr an aosp/835340 - NavigatorProvider ist jetzt
einer Klasse statt einer Benutzeroberfläche. Die
NavigatorProvider, die vongetNavigatorProvider()die Funktionsweise nicht geändert. aosp/830660 NavDestination.navigate()wurde entfernt.navigate()überNavigatoranrufen . aosp/830663- Erhebliche Refaktorierung von
Navigator, wodurchOnNavigatorNavigatedListenernicht mehr erforderlich ist Stattdessen gibtnavigatedieNavDestinationzurück, zu der der Nutzer navigiert ist. Navigator-Instanzen können keine Pop-Ereignisse mehr anNavControllersenden. Erwägen Sie mitOnBackPressedCallback, um Drücken der Schaltfläche „Zurück“ abfangen undnavController.popBackStack()aufrufen. aosp/833716
Fehlerkorrekturen
popUpTofunktioniert jetzt einheitlich, wenn das Ziel ein<navigation>-Element ist b/116831650- Es wurden mehrere Fehler behoben, die zu einem
IllegalArgumentExceptionführten. bei Verwendung verschachtelter Grafiken b/118713731 b/113611083 b/113346925 b/113305559 - Das Attribut
dataPatternvon<activity>-Zielen wird jetzt mit Daten gefüllt Argumente aus Nicht-String-Argumenten durch Aufrufen vontoString()b/120161365
Sichere Argumente
- Sichere Args unterstützt serialisierbare Objekte, einschließlich Enum-Werten. Enum-Typen
kann mit dem enum-Literal ohne den Klassennamen einen Standardwert festlegen.
(z.B.
app:defaultValue="READ") b/111316353 - Sichere Args unterstützt Arrays aller unterstützten Typen b/111487504
- Sichere Args ignoriert jetzt Unterordner von Ressourcenverzeichnissen. b/117893516
- Safe Args fügt gegebenenfalls
@Override-Annotationen hinzu b/117145301
5. Dezember 2018
WorkManager
WorkManager 1.0.0-alpha12 wurde veröffentlicht. Diese Version enthält einige wichtige API-Änderungen. Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen. Diese Version wird wahrscheinlich als erste Betaversion veröffentlicht. alpha12 enthält auch umfangreiche Aktualisierungen der Dokumentation.
API-Änderungen
- Mit dem neuen Artefakt
work-rxjava2wirdRxWorkereingeführt. Dies ist einListenableWorker, das eineSingle<Payload>erwartet. - Firebase JobDispatcher wird nicht mehr unterstützt, da es demnächst eingestellt wird. Das bedeutet, dass das Artefakt „
work-firebase“ im Laufe der Betaphase nicht mehr aktualisiert wird. Wir arbeiten daran, in Zukunft eine Alternative hinzuzufügen. PayloadinResultkombiniert.Resultist jetzt eine „siegelte Klasse“ mit drei konkreten Implementierungen, die Sie überResult.success()(oderResult.success(Data)),Result.failure()(oderResult.failure(Data)) undResult.retry()erhalten können. IhreListenableFuture-Ergebnisse ergeben jetztResultstattPayload.Workerhaben keine Getter- und Setter-Methoden für die AusgabeData. Das ist eine funktionsgefährdende Änderung.Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)undConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)sowie Varianten wurden hinzugefügt, um das langsame Auslösen von Inhalts-URIs besser zu unterstützen. b/119919774WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)Variante wurde hinzugefügt. Für diese Methode ist API 26 erforderlich.- Die Kotlin-Erweiterungsmethoden
Operation.await()undListenableFuture.await()wurden hinzugefügt. Operation.getException()wurde inOperation.getThrowable()umbenannt. Das ist eine funktionsgefährdende Änderung.- Die
ContentUriTriggers-Klasse und die Methoden, die darauf verweisen, sind nicht mehr öffentlich verfügbar. Das ist eine funktionsgefährdende Änderung. - Die restlichen varargs-Methoden in
WorkManager,WorkContinuationundOneTimeWorkRequestwurden entfernt, um die API zu optimieren. Um Build-Probleme zu beheben, können Sie Ihre vorhandenen varargs mitArrays.asList(...)zusammenfassen. Wir fügen immer noch Versionen jeder Methode mit einem Argument hinzu. Das ist eine funktionsgefährdende Änderung. WorkContinuation.combine(OneTimeWorkRequest, *)Varianten wurden entfernt. Es wurde eine verwirrende API präsentiert. Die vorhandenencombine-Methoden sind verständlicher. Das ist eine funktionsgefährdende Änderung.
Fehlerkorrekturen
- Pre-Marshmallow-Implementierungen sind jetzt zuverlässiger bei der Wiederherstellung nach dem Beenden eines Prozesses einer bereits laufenden Aufgabe.
LiveData, das überobserveForeverbeobachtet wird, wird über WorkManager erfasst. Dies ist ein Backport-Problem einer Korrektur der Raumbibliothek. b/74477406Data.Builder.build()löst jetzt eine Ausnahme aus, wenn das serialisierte Objekt seine maximale Größe überschreitet. Dies ist bisher nur in einem Hintergrundthread der Fall, wenn Sie ihn nicht richtig verarbeiten konnten.- Weitere Unterscheidung zwischen angehaltenen und stornierten Arbeiten
getWorkInfoById()gibt während desListenableWorker.onStopped()eineWorkInfomit derCANCELLEDStatezurück. nullResults als Fehler inListenableWorkerbehandeln. b/120362353- Spekulative Fehlerbehebung für Shield Tablets mit API 24, die manchmal eine
IllegalArgumentExceptionauslöste. b/119484416
Nicht abwärtskompatible API-Änderungen
- Firebase JobDispatcher wird nicht mehr unterstützt, da es demnächst eingestellt wird. Das bedeutet, dass das Artefakt „
work-firebase“ im Laufe der Betaphase nicht mehr aktualisiert wird. Wir arbeiten daran, in Zukunft eine Alternative hinzuzufügen. PayloadinResultkombiniert.Resultist jetzt eine „siegelte Klasse“ mit drei konkreten Implementierungen, die Sie überResult.success()(oderResult.success(Data)),Result.failure()(oderResult.failure(Data)) undResult.retry()erhalten können. IhreListenableFuture-Ergebnisse ergeben jetztResultstattPayload.Workerhaben keine Getter- und Setter-Methoden für die AusgabeData.- Die Kotlin-Erweiterungsmethoden
Operation.await()undListenableFuture.await()wurden hinzugefügt. Operation.getException()wurde inOperation.getThrowable()umbenannt.- Die
ContentUriTriggers-Klasse und die Methoden, die darauf verweisen, sind nicht mehr öffentlich verfügbar. - Die restlichen varargs-Methoden in
WorkManager,WorkContinuationundOneTimeWorkRequestwurden entfernt, um die API zu optimieren. Um Build-Probleme zu beheben, können Sie Ihre vorhandenen varargs mitArrays.asList(...)zusammenfassen. Wir fügen immer noch Versionen jeder Methode mit einem Argument hinzu. WorkContinuation.combine(OneTimeWorkRequest, *)Varianten wurden entfernt. Es wurde eine verwirrende API präsentiert. Die vorhandenencombine-Methoden sind verständlicher.
4. Dezember 2018
Zimmer
Raum 2.1.0-alpha03 wurde mit Unterstützung für Koroutinen und mehreren Fehlerkorrekturen freigegeben.
API-Änderungen
- Für den FTS
tokenizerin@Fts3/@Fts4wird jetzt ein String anstelle einer Enum verwendet. Dadurch können benutzerdefinierte Tokenizer von Room verwendet werden. Integrierte Tokenizer sind inFtsOptionsweiterhin als Stringkonstanten definiert. b/119234881
Neue Funktionen
- Couroutinen: DAO-Methoden können jetzt Sperrenfunktionen sein. Zur Unterstützung von Sperrungsfunktionen in Room wurde ein neues Artefakt veröffentlicht:
room-coroutines. b/69474692 - DAO-Methoden, die mit
@Insert,@Deleteoder@Updategekennzeichnet sind, unterstützen jetztListenableFutureals Rückgabetyp. b/119418331
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem Room fälschlicherweise versucht, einen Konstruktor mit Spalten in der
ignoredColumns-Eigenschaft von@Entityzu finden. b/119830714 - Es wurde ein Fehler behoben, bei dem Room DAO-Methodenparameter in der generierten Implementierung nicht als endgültig markiert hat. b/118015483
- Es wurde ein Fehler behoben, bei dem der Room-Prozessor abstürzte, wenn bei einer Abfrage mit Sonderzeichen ein Fehler gemeldet wurde. b/119520136
- Ein Fehler wurde behoben, bei dem Room andere
Collection-Implementierungen als Argumente einesIN-Ausdrucks ablehnte. b/119884035 - Es wurde ein Fehler behoben, bei dem von Room zurückgegebene LiveData-Daten automatisch bereinigt wurden, sodass keine neuen Daten mehr ausgegeben wurden. b/74477406
- Die Schließsperre von
RoomDatabasewurde aktualisiert, um Sperrenkonflikte zu reduzieren. b/117900450
8. Nov. 2018
WorkManager
WorkManager 1.0.0-alpha11 wurde veröffentlicht. Diese Version enthält viele Änderungen, die zur stabilen API unter beta werden.
In dieser Version gibt es wichtige API-Änderungen: Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen.
API-Änderungen
- Mit
work-runtime-ktxwird eine neueCoroutineWorkereingeführt. WorkStatuswurde inWorkInfoumbenannt. Alle entsprechendengetStatus-Methodenvarianten wurden in die entsprechendegetWorkInfoVarianten. Das ist eine funktionsgefährdende Änderung.ListenableWorker.onStopped()akzeptiert kein boolesches Argument mehr, das angibt, obWorkRequestabgebrochen wurde.WorkManagermacht diese Unterscheidung nicht mehr möglich. Das ist eine funktionsgefährdende Änderung.androidx.work.test-Paket wurde inandroidx.work.testing-Paket umbenannt. Das ist eine funktionsgefährdende Änderung.- Setter für
Constraintssind nicht mehr Teil der öffentlichen API. Das ist eine funktionsgefährdende Änderung. WorkerParameters.getTriggeredContentUris()undWorkerParameters.getTriggeredContentAuthorities()haben zuvor Arrays zurückgegeben. Jetzt geben diese Methoden Sammlungen zurück. Das ist eine funktionsgefährdende Änderung.ListenableWorker.onStartWork()wurde inListenableWorker.startWork()umbenannt. Das ist eine funktionsgefährdende Änderung.- Der Konstruktor für
WorkStatusgehört nicht mehr zur öffentlichen API. Das ist eine funktionsgefährdende Änderung. Configuration.getMaxJobSchedulerID()undConfiguration.getMinJobSchedulerID()wurden inConfiguration.getMinJobSchedulerId()umbenannt bzw.Configuration.getMaxJobSchedulerId(). Das ist eine funktionsgefährdende Änderung.- Der öffentlichen API wurden viele
@NonNull-Annotationen hinzugefügt, um die Ergonomie der API zu verbessern. - Fügen Sie die
WorkManager.enqueueUniqueWork()API hinzu, um eindeutigeOneTimeWorkRequests in die Warteschlange zu stellen, ohne eineWorkContinuationerstellen zu müssen. - Alle Varianten der Methoden
enqueueundcancelfürWorkManagergeben jetzt einen neuenOperation-Typ zurück. Das ist eine funktionsgefährdende Änderung. - Alle Varianten von
enqueueakzeptieren keine varargs fürWorkRequests mehr. Das ist eine funktionsgefährdende Änderung. Verwende stattdessen Sammlungen. Sie könnenArrays.asList()verwenden, um vorhandenen Code zu ändern. Wir haben dies getan, um die API-Oberfläche und die Anzahl der Methoden zu reduzieren. - Wenn Sie mehr als einmal versuchen,
WorkManagerpro Prozess zuinitialize, führt dies jetzt zu einemIllegalStateException. Das ist eine funktionsgefährdende Änderung.
Fehlerkorrekturen
WorkRequest.Builders im Artefaktwork-runtime-ktxverwenden jetztListenableWorkers. Damit wird b/117666259 behoben.- Die nächste Ausführungszeit für
PeriodicWorkmuss in der Zukunft liegen. Damit wird b/118204399 behoben. - Entfernen Sie potenzielle Laufwerks-E/A-Vorgänge, wenn beim Start der App WorkManager verwendet wird. Damit wird b/117796731 behoben.
- Eine Race-Bedingung in
WorkConstraintsTrackerwurde korrigiert. Damit wird android-workmanager/issues/56 behoben.
Nicht abwärtskompatible API-Änderungen
WorkStatuswurde inWorkInfoumbenannt. Alle entsprechendengetStatus-Methodenvarianten wurden in die entsprechendegetWorkInfoVarianten.ListenableWorker.onStopped()akzeptiert kein boolesches Argument mehr, das angibt, obWorkRequestabgebrochen wurde.WorkManagermacht diese Unterscheidung nicht mehr möglich.- Paket „
androidx.work.test“ wurde in Paket „androidx.work.testing“ umbenannt. - Setter für
Constraintssind nicht mehr Teil der öffentlichen API. WorkerParameters.getTriggeredContentUris()undWorkerParameters.getTriggeredContentAuthorities()haben zuvor Arrays zurückgegeben. Jetzt geben diese Methoden Sammlungen zurück.ListenableWorker.onStartWork()wurde inListenableWorker.startWork()umbenannt.- Der Konstruktor für
WorkStatusgehört nicht mehr zur öffentlichen API. Configuration.getMaxJobSchedulerID()undConfiguration.getMinJobSchedulerID()wurden inConfiguration.getMinJobSchedulerId()umbenannt bzw.Configuration.getMaxJobSchedulerId().- Alle Varianten der Methoden
enqueueundcancelfürWorkManagergeben jetzt einen neuenOperation-Typ zurück. - Alle Varianten von
enqueueakzeptieren keine varargs fürWorkRequests mehr. - Wenn Sie mehr als einmal versuchen,
WorkManagerpro Prozess zuinitialize, führt dies jetzt zu einemIllegalStateException.
1. November 2018
Paging
Paging 2.1.0-beta01 wurde ohne Änderungen gegenüber 2.1.0-alpha01 freigegeben.
30. Oktober 2018
Zimmer
Raum 2.1.0-alpha02 wurde mit mehreren Fehlerkorrekturen und einer neuen Funktion veröffentlicht.
Neue Funktionen
- Unterstützung für Verweise auf eine
@DatabaseViewin einer@Relationwurde hinzugefügt. b/117680932
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem Room Laufwerks-E/A im Hauptthread ausgeführt wurden, wenn ein Rx-Rückgabetyp abonniert und entfernt wurde. b/117201279
- Es wurde ein Fehler behoben, bei dem Room für ein Feld in einer Kotlin-Entitätsklasse keinen geeigneten Typkonverter finden konnte. b/111404868
- Ein Fehler wurde behoben, bei dem Room falschen Code für eine
DAO-Schnittstellenimplementierung generiert hat, die eine Kotlin-Standardmethode ohne Argumente enthielt. b/117527454 - Der SQLite-Grammatikparser von Room wurde aktualisiert. Es wurde ein Leistungsproblem behoben, das zu langen Build-Zeiten führen würde. b/117401230
29. Oktober 2018
Navigation
Navigation 1.0.0-alpha07 wurde mit Fehlerkorrekturen und API-Änderungen veröffentlicht.
Neue Funktionen
- Eine neue AppBarConfiguration können Sie festlegen, welche Ziele als oberste Ebene betrachtet werden sollen. Ziele. Aktualisierte Dokumentation . b/117333663
- Sie können jetzt Argumente an das Startziel Ihrer Grafik übergeben. b/110300470
- In Deeplinks werden jetzt benutzerdefinierte Schemas mit Punkten, Bindestrichen und Pluszeichen unterstützt. b/112806402
Nicht abwärtskompatible Änderungen
- Das
navigation-testing-ktx-Modul ist in dennavigation-testing artifactund wird nicht mehr veröffentlicht. - Das Artefakt
navigation-testingist jetzt vom Kotlin-Standard abhängig Bibliothek. Die API wurde geändert, um sie mit Kotlin konsistenter zu gestalten aber Sie können ihn weiterhin für Tests verwenden, die in Java geschrieben sind. - In Metadatenmanifesten registrierte Navigationsdiagramme werden nicht mehr unterstützt. b/118355937
- Aktionen können nicht mehr mit <activity> verknüpft werden. Ziele. aosp/785539
Fehlerkorrekturen
- In Deeplinks werden Suchparameter jetzt korrekt geparst. b/110057514
- Bei Aktivitätszielen werden jetzt alle Animationen zum Ein- und Ausblenden korrekt angewendet. b/117145284
- Absturz behoben, der nach Konfigurationsänderungen bei der Verwendung von benutzerdefinierten Navigatoren. b/110763345
Sichere Argumente
- Sichere Argumente haben jetzt eine feste Abhängigkeit vom Android-Gradle-Plug-in 3.2.1. b/113167627
- Es können jetzt Routen für innere Klassen generiert werden. b/117407555
- Ein Problem beim Generieren von Routen zu einem <include>-Element wurde behoben. Diagramm. b/116542123
12. Oktober 2018
Paging
Paging 2.1.0-alpha01 wurde mit zwei großen Ergänzungen veröffentlicht: Page Dropping und KTX-Erweiterungsbibliotheken für jedes Artefakt. Außerdem wurden mehrere andere API-Änderungen und Fehlerkorrekturen vorgenommen.
API-Änderungen
PagedList.Config.Builder.setMaxSize()zur Begrenzung der Anzahl der geladenen Elemente im Arbeitsspeicher hinzugefügt.androidx.paging.Config()wurde als Kotlin-Alternative fürPagedList.Config.Builderhinzugefügt.androidx.paging.PagedList()wurde als Kotlin-Alternative fürPagedList.Builderhinzugefügt.DataSourceFactory.toLiveData()wurde als Kotlin-Alternative fürLivePagedListBuilderhinzugefügt.DataSourceFactory.toObservable()undtoFlowable()als Kotlin-Alternativen fürRxPagedListBuilderhinzugefügtAsyncPagedListDiffer.addPagedListListener()wurde hinzugefügt, um zu prüfen, ob „PagedList“ ausgetauscht wird. b/111698609PagedListAdapter.onCurrentListChanged()Variante wurde hinzugefügt, die die alte und die neue Liste übergibt. Die vorherige Variante wurde eingestellt.- Es wurden
PagedListAdapter/AsyncPagedListDiffer.submitList()-Varianten hinzugefügt, die einen zusätzlichen Callback verwenden, der nach dem Differenzieren ausgelöst wird, wenn die Paged-Liste angezeigt wird. Auf diese Weise können Sie einen PagedList-Austausch mit anderen Aktualisierungen der Benutzeroberfläche synchronisieren. b/73781068 PagedList.getLoadedCount()wurde hinzugefügt, damit du weißt, wie viele Elemente sich im Arbeitsspeicher befinden. Der Rückgabewert ist immer gleich.size(), wenn Platzhalter deaktiviert sind.
Fehlerkorrekturen
- Es wurde eine Race-Bedingung behoben, die auftrat, wenn Listen unterschiedlich wiederverwendet werden b/111591017.
PagedList.loadAround()gibt jetztIndexOutOfBoundsExceptionaus, wenn der Index ungültig ist. Zuvor konnte sie mit einer unklaren anderen Ausnahme abstürzen.- Problem behoben, bei dem eine extrem kleine anfängliche Ladegröße zusammen mit unveränderten Daten dazu führte, dass kein weiteres Laden von b/113122599 erfolgte.
11. Oktober 2018
WorkManager
WorkManager 1.0.0-alpha10 wird mit Unterstützung für entwicklergesteuerte asynchrone Arbeit veröffentlicht. In dieser Version gibt es wichtige API-Änderungen: Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen.
Wir gehen davon aus, dass sich WorkManager in der letzten Phase der Alphaphase befindet. Wir erwarten, dass die API in der Betaversion stabil sein wird. Bitte nehmen Sie sich die Zeit, um uns Feedback über unseren Issue Tracker zu senden.
API-Änderungen
- Alle vorherigen
deprecated-Methoden und -Klassen wurden entfernt, insbesondere derWorker-Standardkonstruktor. Dies ist eine funktionsgefährdende API-Änderung. NonBlockingWorkerwurde inListenableWorkerumbenannt. Diese Klasse ist jetzt eine eingeblendete öffentliche Klasse und kann verwendet werden.ListenableWorkerbietet Zugriff auf eine abstrakte Methode:ListenableFuture<Payload> onStartWork(), die im Hauptthread aufgerufen wird. Es liegt an Ihnen, die Arbeit asynchron zu starten und zu verarbeiten. Wenn Sie fertig sind, sollten SieListenableFutureentsprechend aktualisieren. Referenzimplementierungen vonListenableFuturesind im PaketFuturesinalpha02enthalten (siehe AbschnittWorkManager).WorkererweitertListenableWorkerund funktioniert weiterhin wie zuvor mit einer abstraktenResult doWork()-Methode.- Einige Methoden und Mitglieder wurden von
WorkerzuListenableWorkerzufällig angeordnet. - Wir werden bald Referenzimplementierungen für
ListenableWorkers bereitstellen, die Kotlin-Koroutinen verwenden (sobald die stabilen Versionen veröffentlicht werden) und RxJava2.
- Die Schnittstelle
WorkerFactoryund die konkrete ImplementierungDefaultWorkerFactorywurden zu einer abstrakten Klasse namensWorkerFactoryzusammengeführt. Durch die Implementierung wird das auf der Reflexion basierende Standardverhalten für alle vom Nutzer erstelltenWorkerFactory-Instanzen als letzte Aktion aufgerufen. Das ist eine funktionsgefährdende Änderung. WorkManager.synchronous()undWorkContinuation.synchronous()sowie alle zugehörigen Methoden wurden entfernt.ListenableFuture<Void>wurde als Rückgabetyp vieler Methoden in der API hinzugefügt. Dies ist eine funktionsgefährdende API-Änderung.- Sie können jetzt mithilfe von
ListenableFutures synchron abrufen und beobachten. Beispiel:WorkManager.enqueue()wurde verwendet, umvoidzurückzugeben. wird jetztListenableFuture<Void>zurückgegeben. Sie könnenListenableFuture.addListener(Runnable, Executor)oderListenableFuture.get()aufrufen, um Code auszuführen, sobald der Vorgang abgeschlossen ist. - Diese
ListenableFutures sagen nichts darüber aus, ob der Vorgang erfolgreich war oder fehlgeschlagen ist. dass sie auch fertig waren. Sie müssen trotzdem WorkManager-Methoden verketten, um diese Informationen zu erhalten. cancel()-Aufrufe für diese Objekte werden ignoriert, da sie verwirrend und schwer zu verstehen sind. Brechen Sie den Vorgang oder die daraus resultierende Arbeit ab? Dies ist im Vertrag vonFutureenthalten.- Um die Einheitlichkeit mit den synchronen
getStatus*-Methoden zu wahren, haben wirListenableFuture-Varianten bereitgestellt und die vorhandenen, dieLiveDatazurückgegeben haben, so umbenannt, dass sie explizit „LiveData“ enthalten. als Teil des Namens enthalten (z. B.getStatusesByIdLiveData(UUID)). Dies ist eine funktionsgefährdende API-Änderung.
- Sie können jetzt mithilfe von
Fehlerkorrekturen
- Das bekannte Problem von alpha09 bezüglich doppelter
androidx-annotations.pro-Dateien wurde behoben. Sie können die Problemumgehung aus den vorherigen Versionshinweisen entfernen, indem Sieexclude 'META-INF/proguard/androidx-annotations.pro'aus Ihrer Gradle-Datei löschen. - Proguard-Konfigurationen wurden hinzugefügt, um den neuen
Worker-Konstruktor beizubehalten. b/116296569 - Potenzielle
NullPointerExceptionin einer Race-Bedingung beheben, bei der die ArbeitREPLACEd war. b/116253486 und b/116677275 WorkContinuation.combine()akzeptiert jetzt eine oder mehrereWorkContinuationstatt zwei oder mehr. b/117266752
Nicht abwärtskompatible API-Änderungen
- Alle vorherigen
deprecated-Methoden und -Klassen wurden entfernt, insbesondere derWorker-Standardkonstruktor. - Die Schnittstelle
WorkerFactoryund die konkrete ImplementierungDefaultWorkerFactorywurden zu einer abstrakten Klasse namensWorkerFactoryzusammengeführt. WorkManager.synchronous()undWorkContinuation.synchronous()wurden entfernt.WorkManager.getStatus*()-Methoden geben jetztListenableFutures zurück.WorkManager.getStatus*LiveData()gibtLiveDatas zurück.
Futures
Future-Objekte: 1.0.0-alpha02 wird freigegeben.
API-Änderungen
- Entwickler können jetzt
ResolvableFutureundAbstractResolvableFutureals einfache konkrete Implementierungen vonListenableFutureverwenden.
8. Oktober 2018
Zimmer
Raum „2.1.0-alpha01“ wurde freigegeben.
Neue Funktionen
- FTS: Der Chatroom unterstützt jetzt Entitäten mit einer Zuordnungstabelle FTS3 oder FTS4. Mit
@Entityannotierte Klassen können jetzt zusätzlich mit@Fts3oder@Fts4annotiert werden, um eine Klasse mit einer Zuordnungstabelle für die Volltextsuche zu deklarieren. FTS-Optionen für weitere Anpassungen sind über die Methoden der Annotation verfügbar. b/62356416 - Ansichten: Room unterstützt jetzt die Deklaration einer Klasse als gespeicherte Abfrage, auch als Ansicht bezeichnet. Hierzu wird die @DatabaseView-Annotation verwendet. b/67033276
- Automatischer Wert: Der Raum unterstützt jetzt die Deklaration von mit AutoValue gekennzeichneten Klassen als Entitäten und POJOs. Die Raumanmerkungen
@PrimaryKey,@ColumnInfo,@Embeddedund@Relationkönnen jetzt in den abstrakten Methoden einer Klasse mit automatischem Wert deklariert werden. Beachten Sie, dass diese Anmerkung auch durch@CopyAnnotationsergänzt werden muss, damit sie von Room richtig verstanden werden. b/62408420 - Zusätzliche Unterstützung für Rx-Rückgabetypen: Mit
@Insert,@Deleteoder@Updategekennzeichnete DAO-Methoden unterstützen jetzt Rx-RückgabetypenCompletable,Single<T>undMaybe<T>. b/63317956 - Unveränderliche Typen mit
@Relation: Bisher waren für diesen Raum@Relation-annotierte Felder erforderlich, die festgelegt werden konnten. Jetzt können sie aber auch Konstruktorparameter sein. enableMultiInstanceInvalidation: Ist eine neue API inRoomDatabase.Builder, die die Entwertung mehrerer Instanzen von RoomDatabase unter Verwendung derselben Datenbankdatei ermöglicht. Dieser Mechanismus zur Entwertung mehrerer Instanzen funktioniert auch über mehrere Prozesse hinweg. b/62334005fallbackToDestructiveMigrationOnDowngrade: Ist eine neue API inRoomDatabase.Builder, die die Datenbank bei einem Downgrade automatisch neu erstellt. b/110416954ignoredColumns: Ist eine neue API in der Annotation@Entity, mit der ignorierte Felder nach Name aufgelistet werden können. Nützlich, um übernommene Felder für eine Entität zu ignorieren. b/63522075
API-/Verhaltensänderungen
mCallbackundmDatabaseinRoomDatabasesind jetzt@Deprecatedund werden in der nächsten Hauptversion von Room entfernt. b/76109329
Fehlerkorrekturen
- Es wurden zwei Probleme behoben, bei denen Room von einer beschädigten Datenbank oder einer fehlerhaften Migration während der Initialisierung nicht ordnungsgemäß wiederhergestellt werden konnte. b/111504749 und b/111519144
- In Room wird jetzt der primäre Konstruktor von Kotlin in Datenklassen verwendet, sodass die Felder nicht als
varsdeklariert werden müssen. b/105769985
1. Oktober 2018
Raum „2.0.0“ wurde ohne Änderungen gegenüber „2.0.0-rc01“ freigegeben.
Paging 2.0.0 wurde mit einer einzigen Fehlerkorrektur veröffentlicht.
Paging
Fehlerkorrekturen
- Ein Absturz wurde behoben, der bei sehr schnellem Scrollen unter Verwendung von
PositionalDataSourceund Platzhaltern b/114635383 auftreten konnte.
21. September 2018
Lebenszyklus 2.0.0 wurde mit einer Fehlerkorrektur von 2.0.0-rc01 in ViewModel veröffentlicht.
Lebenszyklus
Fehlerkorrekturen
- Eine ViewModel-Proguard-Regel wurde behoben, durch die Konstruktoren fälschlicherweise entfernt wurden b/112230489.
20. September 2018
Navigation
Navigation 1.0.0-alpha06 wurde mit Fehlerkorrekturen und API-Änderungen veröffentlicht.
Neue Funktionen
- Übergänge zwischen freigegebenen Elementen für Ziele von Fragment und Aktivität werden jetzt unterstützt b/79665225. Weitere Informationen finden Sie unter Navigation mit der Navigationsarchitekturkomponente implementieren.
- Wenn Sie ein Element in „
NavigationView“ auswählen, werden jetzt alle Fenster am unteren Rand geschlossen: b/112158843
API-Änderungen
- Nicht abwärtskompatible Änderung: Die Navigator-Methode
navigate()verwendet jetzt einenNavigator.Extras-Parameter. - Die
getGraph()-Methode von NavController ist jetztNonNullb/112243286
Fehlerkorrekturen
NavigationUI.setupWithNavController()gibt keine Aufrufe mehr frei, wenn er mit Aufrufen einzelner Ziele verwendet wird b/111961977- Navigator
onSaveState()wird jetzt nur noch einmal aufgerufen b/112627079
Sichere Argumente
- Die „Directions“-Klassen für Navigationsziele erweitern jetzt die „Directions“-Klasse der übergeordneten Elemente, sofern vorhanden. b/79871405
- Directions- und Args-Klassen haben jetzt eine nützliche
toString()-Implementierung b/111843389.
19. September 2018
WorkManager
WorkManager 1.0.0-alpha09 wurde mit Fehlerkorrekturen, Infrastrukturaktualisierungen und API-Änderungen veröffentlicht.
Bekanntes Problem
Wenn das Problem „Mehr als eine Datei mit betriebssystemunabhängigem Pfad ‚META-INF/proguard/androidx-annotations.pro‘ gefunden wurde“ auftritt, fügen Sie als vorübergehende Problemumgehung Folgendes in Ihre Gradle-Datei ein, während wir das Problem in Alpha 10 beheben:
Cool
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Fehlerkorrekturen
- Eine weitere Korrektur, die für „100 Jobs“ erforderlich war, wurde hinzugefügt. Fehler. b/115560696
- Es wurden einige Fehler bei Fremdschlüsseleinschränkungen aufgrund von Race-Bedingungen behoben. b/114705286
- Delegierte
ConstraintTrackingWorker.onStopped(boolean)-Aufrufe an die zugrunde liegendeWorker. b/114125093 - Erzwingen Sie die korrekte minimale Backoff-Verzögerung für Firebase JobDispatcher. b/113304626
- Verbesserte Threading-Garantien innerhalb der Bibliothek.
- Korrigieren Sie das potenzielle Problem bei der internen Deduplizierung von
LiveData.
API-Änderungen
- Sie können jetzt zur Laufzeit eigene
Worker-Instanzen erstellen. Geben Sie dazu eineWorkerFactoryals Teil derWorkManager.Configurationan. Die Fallback-Factory istDefaultWorkerFactory, was dem Verhalten vorheriger WorkManager-Versionen entspricht.- Die Standardkonstruktoren für
WorkerundNonBlockingWorkersind jetzt als veraltet markiert. Verwende den neuen Konstruktor (Worker(Context, WorkerParameters)) und rufesuper(Context, WorkerParameters)auf. Bei zukünftigen WorkManager-Versionen wird der Standardkonstruktor entfernt.
- Die Standardkonstruktoren für
- Wir haben damit begonnen, das neue
ListenableFuture-Artefakt intern zu verwenden (ohne Guava-Abhängigkeiten). In zukünftigen Releases werden wir ListenableFutures in die API einführen. Durch diese Änderung kannNonBlockingWorkerspäter wieder eingeblendet werden. - Funktion zum Auslösen von Aufgaben mit zeitlicher Festlegung in
TestDriverüberTestDriver.setInitialDelayMet(UUID)undTestDriver.setPeriodDelayMet(UUID)hinzufügen. b/113360060
Nicht abwärtskompatible Änderungen
- Die Standardkonstruktoren
WorkerundNonBlockingWorkerwurden eingestellt. Migrieren Sie so bald wie möglich zum neuen Konstruktor. In zukünftigen Versionen wird der Standardkonstruktor entfernt.
27. August 2018
WorkManager
WorkManager 1.0.0-alpha08 wurde mit Fehlerkorrekturen veröffentlicht.
Fehlerkorrekturen
- WorkManager-Komponenten wurden ausdrücklich als nicht erkannter direkter Start gekennzeichnet, sodass sie beim direkten Start nicht ausgelöst werden. In Zukunft werden wir eine WorkManager-Version bereitstellen, die direkt bootfähig ist. b/112665532
- Es wurde ein Problem behoben, durch das wiederholte Aufgaben nicht ausgeführt wurden. b/112604021
- Regelmäßige Aufgaben, die nicht wiederholt ausgeführt wurden (im Zusammenhang mit dem oben genannten Problem), wurde behoben. b/112859683
- Die Backoff-Richtlinien wurden eingehalten, wenn der App-Prozess bereits ausgeführt wird.
- Ausnahmemeldungen in
Datawurden korrigiert, um anzugeben, dass das Limit 10 KB beträgt. - Der Maximalwert von
Configuration.setMaxSchedulerLimit(int)wurde auf 50 gesenkt, um eine gewisse Latenz bei der Verarbeitung vonJobSchedulerzu berücksichtigen. b/112817355
16. August 2018
WorkManager
WorkManager 1.0.0-alpha07 wurde mit Fehlerkorrekturen und kleineren API-Änderungen veröffentlicht.
Fehlerkorrekturen
- Eine potenzielle SQL-Abfrage mit negativen Grenzwerten, die eine unbegrenzte Anzahl von Ergebnissen zurückgeben konnte, wurde korrigiert.
- Arbeit, die bereits ausgeführt wurde, bricht nun korrekt alle ausstehenden Kopien dieser Arbeit in anderen Planern ab. Dadurch wurde das Limit von
JobSchedulerJobs überschritten. b/111569265 ConcurrentModificationExceptioninConstraintTrackerkorrigiert. b/112272753- Die Rückgabetyp-Annotationen von
Data.getBooleanArray(String)undData.getIntArray(String)wurden in@Nullablestatt in@NonNullgeändert. b/112275229
API-Änderungen
Workererweitert jetzt die neue KlasseNonBlockingWorker. Dies hat keine Auswirkungen auf die aktuelle Nutzung. In Zukunft wirdNonBlockingWorkerzu einer vollständig unterstützten Entität für Lösungen für benutzerdefinierte Threading.- Die Rückgabetyp-Annotationen von
Data.getBooleanArray(String)undData.getIntArray(String)wurden in@Nullablestatt in@NonNullgeändert. b/112275229 - Kotlin-Erweiterungen: Wir haben
Map.toWorkData()eingestellt und eineworkDataOf(vararg Pair<String, Any?>)auf oberster Ebene hinzugefügt, um die Konsistenz mit vorhandenen APIs zu verbessern.
10. August 2018
Navigation
Navigation 1.0.0-alpha05 wurde mit Fehlerkorrekturen veröffentlicht.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, der zu einem falschen Backstack-Verhalten führt. b/111907708
- Fehlerkorrektur in
equals()der generierten Args-Klassen. b/111450897 - Build-Fehler in sicheren Args beheben. b/109409713
- Konvertierung von Ressourcenkennungen in Java-Namen korrigieren b/111602491
- Fehlermeldungen zur Null-Zulässigkeit im Plug-in „Safe Args“ wurden behoben.
- Fügen Sie fehlende Anmerkungen für die Null-Zulässigkeit hinzu.
6. August 2018
AndroidX-Versionen der Release-Versionen Lifecycle, Room und Paging 2.0.0-rc01. Für alle Artefakte von 2.0.0-beta01 ändert sich nichts.
1. August 2018
WorkManager
WorkManager 1.0.0-alpha06 wurde mit Fehlerkorrekturen veröffentlicht.
Fehlerkorrekturen
- Verhindern Sie bei der Planung von Arbeiten eine Datenbanksperre. b/111801342
- Es wurde ein Fehler behoben, der dazu führte, dass
PeriodicWorkim Stromsparmodus nicht planmäßig ausgeführt wird. b/111469837 - Eine Race-Bedingung beim Verfolgen von Einschränkungen, die
WorkManagerzum Absturz führen, wurde behoben. googlecodelabs/android-workmanager/issues/56 - Erstellen Sie eindeutige
WorkRequests, wenn SieWorkRequest.Builder#build()verwenden. b/111408337 - Aktiviert die Verwendung von
RescheduleReceivernur, wenn esWorkRequests gibt, die sie benötigen. b/111765853
24. Juli 2018
WorkManager
WorkManager 1.0.0-alpha05 wurde mit wichtigen Fehlerkorrekturen und Protokollierungsänderungen veröffentlicht.
API-Änderungen
WorkManager.getInstance()ist jetzt mit@NonNullstatt mit@Nullablegekennzeichnet. Wenn das Singleton-Element bei manueller Initialisierung nicht richtig initialisiert wird, löst die Methode stattdessen einenIllegalStateExceptionaus. Dies ist ein funktionsgefährdende API-Änderung.- Die neue API
Configuration.Builder.setMinimumLoggingLevel(int)wurde hinzugefügt, mit der die Ausführlichkeit von WorkManager gesteuert werden kann. Standardmäßig protokolliert WorkManagerLog.INFOund höher. - Die Signatur von
Data.getString()wurde so geändert, dass kein Standardwert mehr verwendet wird (implizit ist diesnull). Dies ist eine funktionsgefährdende API-Änderung. - Einige Methoden, die nur für die interne Nutzung erforderlich sind, wurden als
@hidegekennzeichnet. Dazu gehören derConstraints-Konstruktor,Data.toByteArray()undData.fromByteArray(byte[]). Dies ist eine funktionsgefährdende API-Änderung.
Fehlerkorrekturen
- WorkManager führt bei bekannten Fällen der automatischen Sicherung keine Arbeit mehr aus. Dies könnte zu einem Absturz geführt haben. b/110564377
- Doppelte Planung von
PeriodicWorkRequests bei Verwendung vonJobSchedulerwurde behoben. b/110798652 - Es wurde ein Problem behoben, bei dem
PeriodicWorkRequests nach dem Stromsparmodus des Geräts nicht korrekt ausgeführt wurden. b/111469837 - Es wurde ein Problem mit anfänglichen Verzögerungen bei der Verwendung von Firebase JobDispatcher behoben. b/111141023
- Einige potenzielle Race-Bedingungen und Timing-Probleme wurden behoben.
BroadcastReceivers, die nicht mehr benötigt wurden, wurden korrekt freigegeben.- Die Leistung bei der Neuplanung wurde optimiert, wenn Apps nach dem erzwungenen Schließen neu gestartet werden.
TestScheduler.setAllConstraintsMet(UUID)darf vor oder nach Einreihung der angegebenenWorkRequestin die Warteschlange aufgerufen werden. b/111238024
Nicht abwärtskompatible Änderungen
WorkManager.getInstance()ist jetzt mit@NonNullstatt mit@Nullablegekennzeichnet.- Die Signatur von
Data.getString()wurde so geändert, dass kein Standardwert mehr verwendet wird (implizit ist diesnull). - Einige Methoden, die nur für die interne Nutzung erforderlich sind, wurden als
@hidegekennzeichnet. Dazu gehören derConstraints-Konstruktor,Data.toByteArray()undData.fromByteArray(byte[]).
July 19, 2018
Navigation
Die Navigation 1.0.0-alpha04 und das zugehörige Gradle-Plug-in für sichere Args enthalten eine Reihe von API-Änderungen, Verhaltensänderungen und Fehlerkorrekturen.
API-/Verhaltensänderungen
- NavHostFragment legt immer das aktuelle Fragment als primäres Navigationsfragment fest, um sicherzustellen, dass untergeordnete Fragmentmanager vor dem äußeren NavController-Element platziert werden. b/111345778
Sichere Argumente
- Nicht abwärtskompatible Änderung:
app:typewurde zuapp:argTypegeändert, um Konflikte mit anderen Bibliotheken wie ConstraintLayout 2.0.0-alpha1 b/111110548 zu vermeiden. - Fehlermeldungen von sicheren Args sind jetzt anklickbar b/111534438
- Die Args-Klassen bestätigen jetzt, dass
NonNull-Attribute tatsächlich nicht null sind. b/111451769 - Zusätzliche
NonNull-Annotationen wurden den von NavDirections und Args generierten Klassen b/111455455 b/111455456 hinzugefügt.
Fehlerkorrekturen
- Ein Problem mit der Schaltfläche "Zurück" des Systems nach einem Deeplink zu einem Fragmentziel wurde behoben b/111515685.
12. Juli 2018
Navigation
Die Navigation 1.0.0-alpha03 und das zugehörige Gradle-Plug-in für sichere Args enthalten eine Reihe von API-Änderungen, Verhaltensänderungen und Fehlerkorrekturen.
API-/Verhaltensänderungen
- Eine NavigationUI.setupWithNavController-Methode für die Toolbar wurde hinzugefügt: b/109868820
- Die NavigationUI.setupWithNavController-Methode für "CollapsingToolbarLayout" wurde hinzugefügt: b/110887183
- popBackStack() gibt jetzt „false“ zurück, wenn der Back Stack leer ist oder die angegebene Ziel-ID sich nicht im Back Stack befindet. b/110893637
- FragmentNavigator ignoriert nun Navigationsvorgänge, nachdem FragmentManager den Status gespeichert hat, sodass die Ausnahmen "Diese Aktion kann nach onSaveInstanceState nicht ausgeführt werden können" vermieden werden b/110987825.
Sichere Argumente
- Nicht abwärtskompatible Änderung:Nicht alphanumerische Zeichen in Aktions- und Argumentnamen werden in den Namen der entsprechenden NavDirections-Methoden durch die Camel-Case-Schreibweise ersetzt.
<ph type="x-smartling-placeholder">
- </ph>
- Beispiel:
DemoController.indexwird zusetDemoControllerIndexb/79995048 - Beispiel:
action_show_settingswird zuactionShowSettingsb/79642240
- Beispiel:
- Nicht abwärtskompatible Änderung:Argumente werden jetzt standardmäßig als ungleich null betrachtet. Fügen Sie
app:nullable="true"b/79642307 hinzu, um Nullwerte für String- und parzellierbare Argumente zuzulassen. - Sie können jetzt
app:type="long"mit Standardwerten im Format „123L“ verwenden. b/79563966 - Ab jetzt werden abparbare Argumente unterstützt, bei denen ein vollständig qualifizierter Klassenname für
app:typeverwendet wird. Der einzige unterstützte Standardwert ist"@null"b/79563966 - Args-Klassen implementieren jetzt
equals()undhashCode()b/79642246 - Das Plug-in "Safe Args" kann jetzt auf Bibliotheksprojekte angewendet werden b/80036553
- Das Plug-in "Safe Args" kann jetzt auf Feature-Projekte angewendet werden b/110011752
Fehlerkorrekturen
- Probleme beim Navigieren während Fragment-Lebenszyklusmethoden b/109916080 behoben
- Probleme beim mehrmaligen Navigieren durch verschachtelte Grafiken behoben. b/110178671
- Probleme bei der Verwendung von
setPopUpTomit dem ersten Ziel im Diagramm b/109909461 behoben - Ein Problem wurde behoben, durch das alle
app:defaultValue-Werte als Strings b/110710788 übergeben wurden. - Aapt2 im Paket mit Android-Gradle-Plug-in 3.2 Beta 01 fügt jetzt Keep-Regeln für jedes
android:name-Attribut in den Navigations-XML-Dateien hinzu. b/79874119 - Ein Speicherleck wurde behoben, das beim Ersetzen des standardmäßigen FragmentNavigator b/110900142 aufgetreten ist.
2. Juli 2018
AndroidX-Versionen der Release-Versionen Lifecycle, Room und Paging 2.0.0-beta01.
Lebenszyklus
Fehlerkorrekturen
- Die LifecycleObserver-Proguard-Regel wurde korrigiert, sodass nur Implementierungen und keine Subschnittstellen beibehalten werden. b/71389427
- Die ViewModel-Proguard-Regeln wurden korrigiert, um Verschleierung und Verkleinerung zu ermöglichen.
Zimmer
API-/Verhaltensänderungen
RoomDatabase.Builder.setQueryExecutor()wurde hinzugefügt, um die Anpassung des Ausführungsorts von Abfragen zu ermöglichen- RxJava2-
Observable-Unterstützung hinzugefügt - Generierte DAO- und Datenbankimplementierungen sind jetzt endgültig
Fehlerkorrekturen
- Klassen-/Feldnamen in „Getter für Feld nicht finden“ angeben Fehler b/73334503
- Die Abwärtskompatibilität von RoomOpenHelper mit älteren Versionen von Room b/110197391 wurde behoben.
Paging
Fehlerkorrekturen
- Problem behoben, bei dem Inhalte in einigen vorangestellten Fällen nicht mehr angezeigt wurden (Platzhalter deaktiviert, PositionalDataSource) b/80149146
- (Bereits in
1.0.1veröffentlicht) Abstürze, bei denenPagedListAdapterundAsyncPagedListDifferkeine Verschiebungsereignisse signalisierten, wurden behoben. b/110711937
26. Juni 2018
Paging
Paging 1.0.1 wurde mit einer einzigen Fehlerkorrektur in runtime veröffentlicht. Aus Gründen der Stabilität empfehlen wir dringend, 1.0.1 zu verwenden. Das Paging von RxJava2 1.0.1 wurde ebenfalls veröffentlicht und ist identisch mit 1.0.0-rc1.
Fehlerkorrekturen
- Abstürze, bei denen
PagedListAdapterundAsyncPagedListDifferkeine Verschiebungsereignisse signalisiert haben, wurden behoben. b/110711937
WorkManager
WorkManager 1.0.0-alpha04 wurde veröffentlicht.
Fehlerkorrekturen
PeriodicWorkRequests werden jetzt korrekt neu geplant, wenn dieAlarmManager-basierte Implementierung verwendet wird.Ein möglicher ANR-Fehler beim Verschieben aller Worker nach einem erzwungenen Beenden oder einem Neustart wurde behoben. b/110507716
Verschiedene WorkManager-APIs wurden um Anmerkungen zur Null-Zulässigkeit hinzugefügt. b/110344065
Nicht abgefangene Ausnahmen protokollieren, die während der Worker-Ausführung auftreten. b/109900862
destruktive Datenbankmigrationen sind zulässig, falls Sie ein Rollback auf eine ältere Version von WorkManager durchführen. b/74633270
Ein Migrationsabsturz beim Erstellen doppelter impliziter Tags wurde behoben. Dies ist ein sehr seltenes Problem, das nur aufgetreten ist, wenn Sie selbst dasselbe implizite Tag-Format verwendet haben.
19. Juni 2018
Zimmer
Raum „1.1.1“ wurde freigegeben. Dieser Release ist mit Raum 1.1.1-rc1 identisch.
WorkManager
WorkManager 1.0.0-alpha03 wurde veröffentlicht.
Fehlerkorrekturen
Eine Race-Bedingung in der
AlarmManager-basierten Implementierung wurde behoben. b/80346526.Doppelte Jobs bei Verwendung von
JobSchedulernach einem Geräteneustart wurden behoben.Jobs mit Inhalts-URI-Triggern bleiben jetzt auch nach einem Neustart bestehen. b/80234744
Aktualisierungen der Dokumentation b/109827628, b/109758949, b/80230748
Ein Absturz beim erneuten Einreihen einer
WorkRequestin die Warteschlange wurde behoben. b/109572353.Die Kotlin-Compiler-Warnungen bei Verwendung der
work-runtime-ktx-Abhängigkeit wurden behoben.WorkManager verwendet jetzt
Room-Version1.1.1-rc1.
API-Änderungen
getStatusesSync(), die synchrone Version vonWorkContinuation.getStatuses(), wurde hinzugefügt.Workerkann zwischen einer vom Nutzer initiierten Kündigung und einer vorübergehenden vom Betriebssystem angeforderten Beendigung unterscheiden.Worker.isStopped()gibttruezurück, wenn eine Art von Stopp angefordert wurde.Worker.isCancelled()gibttruezurück, wenn die Arbeit explizit abgebrochen wurde. b/79632247Unterstützung für JobParameters#getNetwork() auf API 28 hinzugefügt. Dies wird über
Worker.getNetwork()bereitgestellt.Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)wurde hinzugefügt, damit Sie erzwingen können, wie viele Jobs anJobScheduleroderAlarmManagergesendet werden können. So wird verhindert, dassWorkManageralle verfügbarenJobScheduler-Slots belegt.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)wurde hinzugefügt, mit dem ein Bereich vonJobScheduler-Job-IDs definiert werden kann, die fürWorkManagersicher sind. b/79996760Worker.getRunAttemptCount()gibt die aktuelle Anzahl von Ausführungen für eine bestimmteWorkerzurück. b/79716516Mit
WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)können Sie eindeutigePeriodicWorkRequests in die Warteschlange stellen. b/79600647WorkManager.cancelAllWork()bricht alleWorkers ab. Bibliotheken, die vonWorkManagerabhängig sind, können abfragen, wann diese Methode zuletzt aufgerufen wurde. Dazu wirdWorkManager.getLastCancelAllTimeMillis()zur zusätzlichen Bereinigung des internen Status verwendet.WorkManager.pruneWork()wurde hinzugefügt, um abgeschlossene Jobs aus der internen Datenbank zu entfernen. b/79950952, b/109710758
Änderungen im Verhalten
- Es wurde ein implizites Tag für alle
WorkRequesthinzugefügt. Dies ist der vollständig qualifizierte Klassenname für dieWorker. Dadurch können SieWorkRequests ohnetags entfernen oder wennidnicht verfügbar ist. b/109572351
Nicht abwärtskompatible Änderungen
Worker.WorkerResultwurde inWorker.Resultumbenannt.Worker.onStoppedhat jetzt einen zusätzlichenisCancelled-Parameter, der auftruegesetzt wird, wennWorkerexplizit abgebrochen wurde.
7. Juni 2018
Die Navigation „1.0.0-alpha02“ wurde veröffentlicht.
Navigation
Änderungen im Verhalten
FragmentNavigatorverwendet jetztsetReorderingAllowed(true). b/109826220Navigation URLDecodiert jetzt Argumente, die von Deeplinks-URLs geparst wurden. b/79982454
Fehlerkorrekturen
Ein
IllegalStateException-Fehler beim Aufrufen von Navigation von Fragment-Lebenszyklusmethoden wurde behoben. b/79632233Die Navigation hängt jetzt von der Support Library 27.1.1 ab, um Flackern bei der Verwendung von Animationen zu beheben. b/80160903
Problem mit
IllegalArgumentExceptionbei Verwendung von "defaultNavHost="true" behoben als untergeordnetes Fragment. b/79656847Ein
StackOverflowErrorbei Verwendung von NavDeepLinkBuilder wurde behoben. b/109653065Ein
IllegalArgumentExceptionbeim Zurückkehren zu einer verschachtelten Grafik wurde behoben. b/80453447Ein Problem mit überlappenden Fragmenten bei Verwendung von
launchSingleTopwurde behoben. b/79407969Die Navigation erstellt jetzt den richtigen synthetischen Back-Stack für verschachtelte Grafiken. b/79734195
NavigationUI hebt jetzt das richtige Element hervor, wenn ein verschachteltes Diagramm als
MenuItemverwendet wird. b/109675998
API-Änderungen
Das Attribut
clearTaskfür Aktionen und die zugehörige API inNavOptionswurde eingestellt. b/80338878Das Attribut
launchDocumentfür Aktionen und die zugehörige API inNavOptionswurde eingestellt. b/109806636
24. Mai 2018
WorkManager 1.0.0-alpha02 wurde veröffentlicht.
WorkManager
Fehlerkorrekturen
NullPointerExceptioninState.isFinished()behoben. b/79550068Es wurde ein Problem behoben, durch das
Workers aufApplication.onCreate()verschoben wurden. b/79660657Es wurde ein Problem behoben, bei dem Sie mehr Arbeiten planen konnten, als vom Betriebssystem zugelassen ist. b/79497378
Die Bereinigung von Wakelocks, die mit
Workers verknüpft sind, wurde in den Hintergrundthread verschoben.Die
AlarmManager-Implementierung wird jetzt korrekt bereinigt, wenn alle ausstehenden Arbeiten abgeschlossen sind.Bereinigungs-SQL-Abfragen, die nicht englische Sprachen betrafen, wurden behoben. b/80065360
Unterstützung für
floats inDatahinzugefügt. b/79443878Data.Builder.putAll()gibt jetzt eine Instanz vonBuilderzurück. b/79699162Weitere Javadoc-Funktionen und Fehlerbehebungen finden Sie in der Dokumentation. b/79691663
API-Änderungen
Workerkönnen reagieren, wenn sie angehalten wurden. MitWorker.isStopped()kann geprüft werden, ob eineWorkerangehalten wurde. MitWorker.onStopped()können einfache Bereinigungsvorgänge ausgeführt werden.Die
Worker.getTags()API gibt eineSetvon Tags zurück, die mitWorkerverknüpft sind.Es wurden
javax.time.Duration-Überlastungen für APIs hinzugefügt, die eine Kombination aus Dauer undTimeUnits annehmen. Dieser wird von@RequiresApi(26)geschützt.WorkManagerErweiterungen wurden aus dem Paket „androidx.work.ktx“ in das Paket „androidx.work“ verschoben. Die alten Erweiterungen werden nicht mehr unterstützt und in einer zukünftigen Version entfernt.Configuration.withExecutor()wurde verworfen. Verwende stattdessenConfiguration.setExecutor().
16. Mai 2018
Paging von RxJava2 1.0.0-rc1 und Raum 1.1.1-rc1 wurden freigegeben. Wir sehr
empfehlen, bei Migrationen den Raum 1.1.1-rc1 statt 1.1.0 zu verwenden.
Zimmer
Ein Fehler wurde behoben, bei dem Room die Initialisierung der Migration nach der Migration nicht richtig verarbeitete b/79362399.
Paging
Paging rxjava2 wird auf Releasekandidat verschoben, ohne Änderungen gegenüber dem ersten
Alpha.
8. Mai 2018
Paging 1.0, Navigation and WorkManager Alphas, Room 1.1, AndroidX
Paging 1.0.0 und Raum 1.1.0 werden freigegeben.
mit Alphaversionen für zwei neue Architekturkomponenten: Navigation und WorkManager.
„Seitenumbruch“ und „Raum“ haben seit den letzten Releasekandidaten keine Änderungen gegeben.
Neue Bibliothek: Navigation
Die Navigation bietet ein Framework für In-App-Entwicklungen.
Navigation. Diese erste Version ist 1.0.0-alpha01.
Neue Bibliothek: WorkManager
WorkManager vereinfacht die Planung und Ausführung von
garantierten und einschränkungssensitiven Hintergrundarbeit. Diese erste Version ist
1.0.0-alpha01
AndroidX
Architekturkomponenten werden in AndroidX integriert, darunter aktualisierte
Paketnamen, Artefaktnamen und Abhängigkeiten von anderen AndroidX-Bibliotheken.
Diese werden unter Version 2.0.0-alpha1 veröffentlicht und können gemeinsam mit anderen
AndroidX-Bibliotheken
Kotlin-Erweiterungen
ViewModel, ReactiveStreams und Sqlite (früher „Database“-Komponente von Room) Im Rahmen des AndroidX-Alpharelease wurden Kotlin-Erweiterungsbibliotheken hinzugefügt. In Navigation und WorkManager enthalten -ktx-Module. Jede dieser Optionen Erweiterungsmodule finden Sie unter Komponenten hinzufügen.
2. Mai 2018
- Raum 1.1.0-Releasekandidat
- Raum „
1.1.0-rc1“ wurde freigegeben.
Fehlerkorrekturen
- Der Chatroom ist jetzt mit Kotlin
1.2.40kompatibel. b/78328708
19. April 2018
Versionskandidaten für Seitenumbruch
Seitenumbruch 1.0.0-rc1 und Raum 1.1.0-beta3 werden freigegeben.
Paging
Es sind keine weiteren bekannten Probleme oder neuen Funktionen geplant für den
Paging 1.0.0-Release. Führen Sie ein Upgrade Ihrer Projekte durch, um 1.0.0-rc1 zu verwenden und
hilf uns beim Kampftest, damit wir einen steinharten 1.0.0 versenden können.
In diesem Release gibt es keine Änderungen. Er ist mit 1.0.0-beta1 identisch.
Zimmer
Fehlerkorrekturen
- Kompilierungsfehler beheben, wenn ein Kotlin-POJO auf eine Beziehungsentität verweist, die wurde in Java definiert: b/78199923
5. April 2018
Raum 1.1.0-beta2, Paging 1.0.0-beta1 und Paging RxJava 1.0.0-alpha1 wurden veröffentlicht.
Paging ist für kurze Zeit in der Betaphase, bevor der Kandidaten freigegeben wird.
Wir planen keine weiteren API-Änderungen für Paging 1.0 und die Messlatte für API-Änderungen sind sehr hoch.
Alpha RxJava2-Unterstützung für Paging wird als separates optionales Modul veröffentlicht (android.arch.paging:rxjava2:1.0.0-alpha1)
und wird vorübergehend separat versioniert, bis sich dies stabilisiert.
Diese neue Bibliothek bietet eine RxJava2-Alternative zu LivePagedListBuilder, mit der Sie
Observable und Flowable mit Scheduler statt Executor:
Kotlin
val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable()
Java
Observable<PagedList<Item>> pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable();
Paging
Neue Funktionen
RxPagedListBuilderwird über das neue Artefaktandroid.arch.paging:rxjava2hinzugefügt.
API-Änderungen
API-Änderungen zur Verdeutlichung der Rolle von Executors in Buildern:
setBackgroundThreadExecutor()wurde insetFetchExecutor()umbenannt (inPagedList.BuilderundLivePagedListBuilder)setMainThreadExecutor()wurde insetNotifyExecutor()(inPagedList.Builder) umbenannt.
PagedList.mCallbacksMitglied ist jetzt privat.
Fehlerkorrekturen
LivePagedListBuilderlöst den anfänglichenPagedList-Ladevorgang für den angegebenen Executor aus statt des Arch Components IO-Thread-Pools.Das Verhalten bei der Entwertung in internen
DataSource-Wrappern (zur Implementierung vonDataSource.map, sowie durch Platzhalter deaktiviertesPositionalDataSourceLaden) b/77237534
Zimmer
Fehlerkorrekturen
Ein kritischer Fehler in den Implementierungen von Rx
SingleundMaybedes Raums wurde behoben. würde die Abfrage vorzeitig wiederverwenden, was zu Problemen führt, wenn Sie mehr als 1 in die zurückgegebenenSingle- oderMaybe-Instanzen ein. b/76031240RoomDatabase.clearAllTables
VACUUMlegt die Datenbank nicht fest, wenn sie aufgerufen wird innerhalb einer Transaktion. b/77235565
21. März 2018
Raum 1.1.0-beta1, Paging 1.0.0-alpha7 und Lebenszyklen 1.1.1 wurden freigegeben.
Zimmer
API-Änderungen
- Laut Feedback zur API-Überprüfung akzeptiert
@RawQuerydie Übergabe einerStringals Abfrageparameter nicht mehr. Sie müssen SupportSQLiteQuery verwenden. Wie Sie ganz einfach eine Instanz von SupportSQLiteQuery mit Argumentunterstützung erstellen, erfahren Sie unter SimpleSQLiteQuery. - Die Methode fallbackToDestructiveMigrationFrom von RoomDatabase.Builder akzeptiert jetzt
vararg intanstelle vonvararg Integer.
Fehlerkorrekturen
RoomDatabase.clearAllTables versucht nun, Speicherplatz an das Betriebssystem zurückzugeben, indem ein WAL-Checkpoint festgelegt und die Datenbank
VACUUMgesteuert wird.@RawQueryakzeptiert jetzt jedes Pojo für dieobservedEntities-Eigenschaft, sofern das Pojo über seineEmbedded-Felder oderRelations auf eine oder mehrere Entitäten verweist. b/74041772Paging: Die DataSource-Implementierung von Room verarbeitet jetzt Abhängigkeiten aus mehreren Tabellen (wie Beziehungen und Joins). Bisher lösten diese keine neuen Ergebnisse aus oder konnten nicht kompiliert werden. b/74128314
Lebenszyklen
Nur eine kleine Änderung: android.arch.core.util.Function wurde von arch:runtime nach arch:common verschoben. Dadurch kann es ohne Laufzeitabhängigkeit verwendet werden, z.B. in paging:common unten.
lifecycle:common ist eine Abhängigkeit von lifecycle:runtime. Diese Änderung wirkt sich also nicht direkt auf lifecycle:runtime aus, sondern nur auf Module, die wie Paging direkt von lifecycle:common abhängen.
Paging
Paging 1.0.0-alpha7 wird zusammen mit den Lebenszyklen 1.1.1 veröffentlicht. Da die Paginierung von Alpha7 von der oben genannten Verschiebung der Function-Klasse abhängt, müssen Sie die lifecycle:runtime-Abhängigkeit auf android.arch.lifecycle:runtime:1.1.1 aktualisieren.
Paging alpha7 wird voraussichtlich als letzte Version verfügbar sein, bevor die Funktion zur Paging-Funktion in der Betaversion verfügbar ist.
API-Änderungen
DataSource.LoadParams-Objekte haben jetzt einen öffentlichen Konstruktor undDataSource.LoadCallback-Objekte sind jetzt abstrakt. Dies ermöglicht das Wrapping einesDataSource-Objekts oder das direkte Testen einesDataSource-Objekts mit einem simulierten Callback. b/72600421- Mapper für DataSource und DataSource.Factory
<ph type="x-smartling-placeholder">
- </ph>
- Mit
map(Function<IN,OUT>)können Sie Ergebnisse, die von einemDataSourcegeladen wurden, transformieren, zusammenfassen oder dekorieren. mapByPage(<List<IN>,List<OUT>>)aktiviert dasselbe für die Batchverarbeitung (z.B. wenn aus SQL geladene Elemente zusätzlich eine separate Datenbank abfragen müssen, was im Batch möglich ist).
- Mit
PagedList#getDataSource()wurde als praktische Methode hinzugefügt b/72611341- Alle verworfenen Klassen wurden aus der API entfernt, einschließlich der Überreste des Pakets
recyclerview.extensionsund desLivePagedListProvider. DataSource.Factorywird von einer Schnittstelle in eine abstrakte Klasse geändert, um Kartenfunktionen zu aktivieren.
Fehlerkorrekturen
- Die Builder wurden zu endgültig geändert. b/70848565
- Die Implementierung des Raums
DataSourcewurde jetzt korrigiert, um Anfragen an mehrere Tabellen zu verarbeiten. Diese Korrektur ist in Raum 1.1.0-beta1 enthalten, siehe oben. - Es wurde ein Fehler behoben, bei dem
BoundaryCallback.onItemAtEndLoadedfürPositionalDataSourcenicht aufgerufen wurde, wenn Platzhalter aktiviert und ist die Gesamtgröße genau ein Vielfaches der Seitengröße.
2. März 2018
Raum „1.1.0-alpha3“ wurde freigegeben. Dies ist die letzte geplante Alphaversion für
Raum 1.1.0.
API-Änderungen
addObserverundremoveObservervon UngültigkeitTracker -Methoden sind jetzt synchron und müssen in einem Nicht-UI-Thread aufgerufen werden. Dies verhindert einige Race-Bedingungen bei der Beobachtung von Tabellen.Für RoomDatabase gibt es eine neue
clearAllTables()-Methode , die den gesamten Tabelleninhalt kürzt. b/63807999SupportSQLiteQueryhat jetzt einegetArgCount()-Methode, die die Zahl zurückgibt von Suchparametern. b/67038952
Fehlerkorrekturen
@RawQuerywird jetzt ordnungsgemäß für Paging-Abfragen unterstützt. b/72600425Die generierten
Dao-Klassen werden jetzt korrekt benannt, um Namenskonflikte zu vermeiden, wenn Zwei oder mehrDao-Schnittstellen sind innere Klassen im selben Paket und haben die mit demselben Namen. b/73536380Allgemeine Feldtypen in
Pojos werden ordnungsgemäß als Mitglied der erweiterten . b/73534868Abfrageparameter in
Dao-Schnittstellen, die von der Abhängigkeit übernommen werden Artefakte jetzt ordnungsgemäß geparst. b/68118746Bei Abfragen, die für
@Relations generiert wurden, wird nun ordnungsgemäß ein Escapezeichen für die Feldnamen verwendet. b/70925483
27. Februar 2018
Paging 1.0.0-alpha6 wird zusammen mit der Support Library-Version 27.1.0 veröffentlicht.
ListAdapter und einige zugehörige Klassen wurden aus der Paging-Bibliothek direkt zu Recyclerview verschoben. Dies gilt auch für einige Umbenennungen, um die Funktion bestimmter Klassen klarer zu machen. Diese Alphaversion von Paging ist wahrscheinlich die letzte mit wesentlichen funktionsgefährdenden Änderungen an der API.
API-Änderungen
- In „recyclerview-v7“ verschobene Klassen:
<ph type="x-smartling-placeholder">
- </ph>
ListAdapter
- Die Klassen wurden umbenannt und in „recyclerview-v7“ verschoben:
<ph type="x-smartling-placeholder">
- </ph>
ListAdapterHelper->AsyncListDifferListAdapterConfig->AsyncDifferConfigDiffCallback->DiffUtil.ItemCallback
- In „paging-runtime“ umbenannte Klassen:
<ph type="x-smartling-placeholder">
- </ph>
PagedListAdapterHelper->AsyncPagedListDiffer
Die verschobenen Klassen waren unabhängig von der Paging Library neben RecyclerView nützlich. Das bedeutet, dass sie ohne Paging-Alphaversion verwendet werden können, aber auch bedeutet, dass Apps, die Paging verwenden, gleichzeitig auf Alpha 6 und Support Library 27.1.0 aktualisiert werden müssen.
** Migrationsanleitung für Paging Alpha6: **
- Paging- und Recyclerview-Abhängigkeiten auf
android.arch.paging:runtime:1.0.0-alpha6undcom.android.support:recyclerview-v7:27.1.0aktualisieren <ph type="x-smartling-placeholder">- </ph>
- Diese müssen gleichzeitig erfolgen, da ListAdapter von Paging nach RecyclerView verschoben wurde.
- Alle Verweise von
ListAdapterHelperaufAsyncListDifferaktualisieren <ph type="x-smartling-placeholder">- </ph>
getItem(index)/getItemCount()wurde zugunsten des expliziteren MustersgetCurrentList().getItem(index)undgetCurrentList().size()entfernt.
- Alle Verweise von
ListAdapterConfigaufAsyncDifferConfigaktualisieren - Alle Verweise von
DiffCallbackaufDiffUtil.IttemCallbackaktualisieren - Alle Verweise von
PagedListAdapterHelperaufAsyncPagedListDifferaktualisieren - Verweise von
setList()aufsubmitList()aktualisieren <ph type="x-smartling-placeholder">- </ph>
- umbenannt, um den asynchronen Charakter der Listenunterschiede zu verdeutlichen
Fehlerkorrekturen
- Das Übergeben einer falschen Anfangsposition an den anfänglichen Ladevorgang bei Platzhaltern wurde behoben. deaktiviert sind. b/73513780
15. Februar 2018
Raum „1.1.0-alpha2“ wurde freigegeben.
Neue Funktionen
Room unterstützt jetzt das Öffnen einer Datenbank im Write-Ahead-Logging-Modus. In diesem Modus blockieren Ihre Schreibvorgänge nicht mehr Ihre Leseabfragen. Obwohl mehr Arbeitsspeicher verbraucht (aufgrund mehrerer Verbindungen). Dieser Modus ist normalerweise schneller. Standardmäßig verwendet Room WAL, wenn das Gerät mindestens
API 16ist und es ist kein Gerät mit wenig Arbeitsspeicher. Sie können dieses Verhalten mithilfe der MethodesetJournalMode()fürRoomDatabase.Builder. b/67757002Guava-Support: In Chatrooms können jetzt Guava zurückgegeben werden.
Optional<T>oderListenableFuture<T>inDAO-Abfragen. Wenn SieListenableFuture<T>verwenden möchten, Du musstguavaArtefakt aus Chatroom importieren (android.arch.persistence.room:guava:1.1.0-alpha2)Der Chatroom unterstützt jetzt die Rückgabe von
java.util.Optional<T>ausDAOAbfragen.Schnittstellenmethoden mit Standardimplementierungen werden jetzt in
@Transaction-Methoden inDAO-Klassen. Dies funktioniert sowohl fürJava 8als auchKotlin. b/72416735
Fehlerkorrekturen
Konstruktoren mit
@Relationverursachen keinen Kompilierungsfehler, wenn einen weiteren Konstruktor, der verwendet werden kann. b/72884434Tabellennamen, die in den Methoden
@Querymit'maskiert wurden, werden jetzt korrekt maskiert. für den Entwertungs-Tracker. b/72366965In Room werden jetzt die Kotlin-Anmerkungen
@Metadataverwendet, um die Klassenstruktur zu lesen während der Annotationsverarbeitung. Das heißt, selbst wenn ein Pojo von einem Abhängigkeit, können die Namen der Konstruktorparameter ordnungsgemäß gelesen werden. b/67181813Ein Problem mit der Suche nach Downgrade-Migrationspfaden wurde behoben. b/72153525
Nicht standardmäßige Spaltentypen werden jetzt bei der Migration von einer vorhandene Datenbank in Room um. b/71953987
Der Chatroom verarbeitet nun dauerhafte
boolean?-Felder in Kotlin-Klassen nun korrekt. b/72786402
22. Januar 2018
Die Lebenszyklen 1.1.0, Raum 1.1.0-alpha1 und Paging 1.0.0-alpha5 werden freigegeben.
Lebenszyklus 1.1.0
Änderungen an der Verpackung
Neue, viel kleinere Abhängigkeiten sind jetzt verfügbar:
android.arch.lifecycle:livedata:1.1.0android.arch.lifecycle:viewmodel:1.1.0
API-Änderungen
- Die veralteten
LifecycleActivityundLifecycleFragmentwurden entfernt. Bitte verwenden SieFragmentActivity,AppCompatActivityoder unterstützenFragment. @NonNullAnmerkungen wurdenViewModelProvidersundViewModelStoreshinzugefügt- Der
ViewModelProviders-Konstruktor wurde verworfen. Verwenden Sie bitte direkt seine statischen Methoden ViewModelProviders.DefaultFactorywurde eingestellt – bitteViewModelProvider.AndroidViewModelFactoryverwenden- Die statische Methode
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)wurde hinzugefügt, um eine statischeFactory, die zum Erstellen vonViewModel- undAndroidViewModel-Instanzen geeignet ist.
Raum 1.1.0-alpha1
Neue Funktionen
RawQuery: Diese neue API ermöglicht es@Dao-Methoden, die SQL als Abfrageparameter zu empfangen. b/62103290, b/71458963fallBackToDestructiveMigrationsFrom: Diese neue API inRoomDatabase.Builderermöglicht Detaillierte Kontrolle darüber, von welchen Startschemaversionen die destruktiven Migrationen ausgeführt werden zulässig (im Vergleich zu „fallbackToDestructiveMigration“) b/64989640- Room unterstützt jetzt nur neuere Paging APIs (Alpha-4+). Die eingestellten
LivePagedListProviderWenn Sie die neue Alphaversion von „Raum“ verwenden möchten, müssen Sie Paging verwendenalpha-4oder höher und wechsle vonLivePagedListProviderzuLivePagedListBuilder, falls du das noch nicht getan hast.
Fehlerkorrekturen
- Verbesserte Unterstützung für Kotlin Kapt-Typen. b/69164099
- Die Reihenfolge der Felder macht das Schema nicht mehr entwerten. b/64290754
Paging 1.0.0-alpha5
Fehlerkorrekturen
- Fehler beim Laden von Seiten bei deaktivierten Platzhaltern beheben b/70573345
- Zusätzliches Logging zum Aufspüren des IllegalArgumentException-Fehlers b/70360195 (und spekulative Korrektur im Raum)
- Fehlerkorrekturen für den Javadoc-Beispielcode b/70411933 und b/71467637
11. Dezember 2017
Paging alpha4-1 wurde freigegeben. Dies ist eine kleine Fehlerbehebungsversion für Paging Alpha 4.
Fehlerkorrekturen
- Überprüfen Sie Callback-Parameter nicht auf ungültige Datenquellen. b/70353706 b/70360195
7. Dezember 2017
Paging alpha4 wurde mit erheblichen Änderungen und Ergänzungen veröffentlicht, hauptsächlich
die sich auf Netzwerk-, Netzwerk- und Datenbankanwendungsfälle konzentriert.
API-Änderungen
DataSourceist jetzt eine asynchrone API, um das Paging direkt aus dem Netzwerk zu vereinfachen:- Ein einziger Einstiegspunkt für anfängliche Größe und Daten
- Unterstützt Wiederholungsversuche im Netzwerk, indem der Callback beibehalten und die Weiterleitung später erfolgt
- Threadsichere Callbacks ermöglichen asynchrones Laden zum Erstellen eines einzelnen Netzwerks
PagedListim UI-Thread gesichert. - Klarer formuliertes Fehlerverhalten bei Parametern des anfänglichen Ladevorgangs
TiledDataSourcewurde inPositionalDataSourceumbenannt, um und die Tatsache, dass bei Platzhaltern deaktiviert.PageKeyedDataSourcewurde hinzugefügt, um das nächste/vorherige, in folgende Elemente eingebettete Token zu unterstützen wird die Netzwerkseite geladen.KeyedDataSourcewurde inItemKeyedDataSourceumbenannt, um Unterschied klar zu erkennen.LivePagedListBuilderundDataSource.FactoryersetzenLivePagedListProviderDer Builder bietet die gleiche Funktionalität mit mehr und vereinfachte Standardeinstellungen. In der Werkseinstellung ist die GenerationDataSourceerlaubt um unabhängig vonLiveDatazu bleiben.PagedList.BoundaryCallbackwurde für den Anwendungsfall Datenbank und Netzwerk hinzugefügt.Der
PagedList.Builder-Konstruktor übernimmt jetztDataSource+PagedList.Configähnlich wieLivePagedListBuilderund ermöglicht den Diamantoperator in Java oder abgeleitete Typen in Kotlin.PagedList.getConfig()hinzugefügt undPagedList.Confighat jetzt ein öffentliches Mitglied Eigenschaften.Für
KeyedDataSource.loadBefore()sind keine umgekehrten Ergebnisse mehr zu erwarten.PagedListAdapter.onCurrentListChanged()wurde hinzugefügt, um auf Updates zu warten, zu denen PagedList wird angezeigt.
Fehlerkorrekturen
- Fehler bezüglich IndexOutOfBoundsException in PagedListAdapter(Helper) b/67883658 behoben
1.0.0 bis 6. November 2017
Alle Hauptkomponenten (außer Paging) sind jetzt 1.0.0. Das ist genau das Gleiche,
veröffentlicht als rc1, bis auf eine Änderung an der reactivestreams-Bibliothek.
Fehlerkorrekturen
LiveDataReactiveStreamswurde jetzt korrekt implementiert der Spezifikation Reactive Streams. b/67999342
Releasekandidaten – 18. Oktober 2017
Alle wichtigen Artefakte (außer Paging) sind jetzt 1.0.0-rc1.
Es sind keine weiteren bekannten Probleme oder neuen Funktionen geplant für den
1.0.0 Release. Bitte führen Sie ein Upgrade Ihrer Projekte zur Verwendung von 1.0.0-rc1 durch und helfen Sie uns.
um einen steinharten 1.0.0 zu versenden.
Verhaltensänderung
- Mit diesem Release wird
Lifecycle.Event#ON_STOPjetzt ausgelöst, wennonSaveInstanceStatewird angerufen (zuvor war es gerade alsCREATEDmarkiert) ohne dassON_STOPgesendet wird. Weitere Informationen dazu finden Sie in der Dokumentation zu Lebenszyklen
Fehlerkorrekturen
Raum:
- Der Raum ist jetzt vom neuesten xerialen Artefakt abhängig, das das
OutOfMemorykorrigiert Probleme während der Kompilierung. b/62473121 Query-Methoden können jetzt mit@Transactionannotiert werden. Weitere Informationen finden Sie in der Referenzdokumentation zu@Transaction. b/65112315StringUtilKurs im Chatroom ist nicht öffentlich verfügbar API (sie war nie als öffentliche API vorgesehen).
- Der Raum ist jetzt vom neuesten xerialen Artefakt abhängig, das das
Lebenszyklen:
LiveDatafunktioniert ordnungsgemäß, wenn Activity in der API teilweise abgedeckt ist < 24. b/65665621OnLifecycleEvent-Methoden in übergeordneten Klassen werden jetzt ordnungsgemäß aufgerufen oder ein Wenn dies nicht möglich ist, wird während der Kompilierung eine Warnung ausgegeben. b/63474615Lebenszyklus beinhaltet jetzt
WeakReference-Werte wieder in ihre LifecycleOwner vermeiden, LifecycleOwner, wenn der Lebenszyklus länger im Arbeitsspeicher gehalten wird als üblich. Dies ist nur eine Vorsichtsmaßnahme.Lifecycleveröffentlichen).
9. Oktober 2017
Paging alpha-3 wird freigegeben. wodurch es mit dem beta 2 kompatibel ist.
von Lifecycles und Room.
Fehlerkorrekturen
- Verbesserte Paging-Dokumentation.
5. Oktober 2017
Alle wichtigen Artefakte (außer Paging) sind jetzt beta 2.
In dieser Version gibt es keine neue Version von Paging.
Fehlerkorrekturen
Lebenszyklen:
LiveDataReactiveStreamsmeldet sich jetzt korrekt von der Quelle ab Publisher, wennLiveDatanicht aktiv ist. b/62609183- Lebenszyklusereignisse werden ordnungsgemäß an übergeordnete Klassen weitergegeben, wenn die übergeordnete Klasse aus einem anderen Modul stammt. b/63474615
- LiveData handhabt Beobachter beim Abbestellen Abo-Erstellung. b/66337741
Das Artefakt
FullLifecycleObserverfür die Java 8-Sprache ist jetzt in der Abhängigkeitsstruktur verfügbar. b/66525578Fügen Sie Ihrer Proguard-Datei die folgenden Zeilen hinzu. (Dies ist nicht erforderlich, wenn Version 1.0.0 ausgeliefert wird.)
-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
Raum:
- Room gibt jetzt bei der Kompilierung einen Fehler aus, wenn das zurückgegebene Pojo in einem
Die Methode
@Queryhat ein Feld@NonNull, das mit keiner der Spalten in der Abfrageantwort. Wenn das Feld@Nullableist, gilt nur „Raum“. gibt eine Warnung aus. b/67115337 - Room validiert jetzt Indexe in neueren Betriebssystemversionen. b/63132683
- Der Raum wählt standardmäßig no-arg-Konstruktor aus, wenn mehrere mit übereinstimmenden Konstruktoren in einem Pojo. b/67353427
- Einspaltige Primärschlüssel können
Nullablesein, wenn es sich umIntegeroderLong. b/67086876 - Der Entwertungstracker verarbeitet den erneuten Eintritt im Testmodus ordnungsgemäß. b/65471397
- Der Chatroom sucht jetzt nach ungültigen Zeichen in Spalte und Tabelle
Namen bei der Kompilierungszeit (ungültige Zeichen:
`,"). b/64749111
- Room gibt jetzt bei der Kompilierung einen Fehler aus, wenn das zurückgegebene Pojo in einem
Die Methode
21. September 2017
Mit diesem Release erreichen alle Module der Architekturkomponenten mindestens beta 1
außer der neuen Paging Library (alpha 2).
Wir planen keine weiteren API-Änderungen. Ungeplante Änderungen können passieren,
Die Messlatte für API-Änderungen bis zum 1.0.0 (stabile Version) ist sehr hoch und wird unwahrscheinlich.
- Lebenszyklusaktivität und LifecycleFragment wird vor
1.0.0(stabil) entfernt. Sie werden nicht benötigt, wenn Sie die Support Library26.1.0oder höher verwenden.
Im Gegensatz zur Alpha-Phase ist die Betaphase nur für eine sehr kurze Dauer geplant.
Versionsänderungen
- Lebenszyklus-Erweiterungen und Raum sind jetzt
beta 1 - Paging ist jetzt
alpha 2 - Keine Änderungen bei Lebenszyklus (Laufzeit, häufig) und Arch Core (allgemein). Diese beiden Artefakte
sind seit dem 13. September Version
1.0.0.
Neue Artefakte
Lebenszyklen haben jetzt ein neues Artefakt namens
common-java8. Dieses Artefakt enthält ein neue Schnittstelle namens DefaultLifecycleObserver welche hat Standardimplementierungen für alle Lebenszyklusmethoden. Wenn Sie die Programmiersprache Java 8 verwenden, sollten Sie dieses Artefakt statt Annotationen vorziehen.- Aufgrund eines Fehlers in
beta1müssen Sie eine explizite Abhängigkeit für Modulandroid.arch.lifecycle:common:1.0.1, um das neue Artefaktcommon-java8zu verwenden. Dieses Problem wird inbeta2behoben.
- Aufgrund eines Fehlers in
Änderungen an der Verpackung
- „
android.arch.persistence.room.db“ wurde in „android.arch.persistence.db“ verschoben android.arch.persistence.room.db-implwurde verschoben und inandroid.arch.persistence.db-frameworkumbenannt
Beide Artefakte sind bereits von Room abhängig. Sofern Sie sie nicht direkt verwendet haben, sollten Sie keine Änderungen an Ihren Build-Dateien vornehmen müssen.
API-Änderungen
Raum:
- Die Annotation @ColumnInfo unterstützt jetzt das Festlegen einer Sortierung für die Spalte. b/62007004
transient-Felder werden jetzt standardmäßig ignoriert, es sei denn, sie sind mit@ColumnInfoannotiert.@Embeddedoder@Relation. b/62600692- Primärschlüssel müssen mit
@NonNullgekennzeichnet werden, sofern sie nicht automatisch generiert werden. b/64292391 <ph type="x-smartling-placeholder">- </ph>
- Für diese Änderung ist möglicherweise eine Schemamigration erforderlich. Für die Unannehmlichkeiten möchten wir uns entschuldigen.
- Eine neue Convenience-Anmerkung (@Transaction) wurde hinzugefügt,
überschreibt eine
DAO-Methode und führt sie in einer Transaktion aus.
SQLite-Datenbank unterstützen:
- API-Änderungen in der Datenbankkonfiguration. b/65349673 b/65499876
Paging:
- Verbesserte Dokumentation zum Paging mit mehr Beispielen und Thread-Annotationen
Fehlerkorrekturen
- Raum:
<ph type="x-smartling-placeholder">
- </ph>
- Mehrzeilige Kotlin-Strings in
@Query-Methoden werden ordnungsgemäß verarbeitet. b/65809374
- Mehrzeilige Kotlin-Strings in
- Paging:
<ph type="x-smartling-placeholder">
- </ph>
- Das Paging-Artefakt hängt nicht mehr von junit ab. b/65690261
1.0.0 Alpha 9-1 – 13. September 2017
Dies ist ein Hauptrelease, bei dem Artefakte des Kernlebenszyklus (Laufzeit, allgemein) und Arch Core (allgemein)
Zur stabilen Version 1.0.0
Im Zuge dieser Änderung ist die Support Library 26.1.0 jetzt von diesen Bibliotheken abhängig. Sowohl AppCompatActivity als auch Support-Fragment implementieren Sie jetzt die LifecycleOwner-Schnittstelle.
Dieser Release hängt auch von der Supportbibliothek 26.1.0 ab, um die neue Integration nutzen zu können.
Neue Bibliothek: Paging
Diese Version umfasst außerdem eine neue Bibliothek namens Paging, mit der sich große
Datensätze, falls erforderlich, in Blöcken in eine RecyclerView. Paging wird als alpha1 veröffentlicht.
und hat einen eigenen Veröffentlichungszyklus.
API-Änderungen
- Die folgenden Klassen wurden eingestellt und werden in einer zukünftigen Version entfernt: <ph type="x-smartling-placeholder">
Fehlerkorrekturen
Generierte Klassen werden jetzt mit
@Generatedannotiert, wenn die App die Annotation im Klassenpfad enthält. b/35754819Der Beobachter-Vergleichsfehler von MediatorLiveData wurde behoben. b/64413274
SQLite-Abfragen vom Typ
WITHwerden jetzt mit [LiveData] unterstützt. [ref-LiveData] b/62510164Es wurde ein Fehler behoben, bei dem InvalidationTracker bei mehr als einer Tabelle nicht die richtige Liste sendete. erfasst wird. b/65099281
Ein Fehler wurde behoben, bei dem Room unter Windows verschiedene Dateien generiert hat. b/64470691
LifecycleObservers werden jetzt im Stammpaket unterstützt. b/62310817
1.0.0 Alpha 9 – 16. August 2017
Fehlerkorrekturen
- Ein Fehler in LiveData wurde behoben, bei dem der zweite Observer ignoriert wurde, wenn der erste Observer aus der
onChanged-Methode entfernt wurde. b/64285805
1.0.0 Alpha 8 – 1. August 2017
Änderungen im Verhalten
- Für Spalten mit primitiven Typen oder Spalten wurde die Einschränkung
NOT NULLhinzugefügt annotiert mit NonNull. Dadurch ändert sich die Struktur Ihrer Wenn Sie bereits mit Architekturkomponenten Alpha 7 oder niedriger arbeiten, müssen Sie eine Migration implementieren, wenn Sie die Daten behalten oder die MethodefallbackToDestructiveMigration()-Methode im Builder. b/62007004
API-Änderungen
- SupportSQLiteProgram erweitert AutoCloseable jetzt. b/63131997
1.0.0 Alpha 7 – 26. Juli 2017
Fehlerkorrekturen
Ein kritischer Fehler in der Methode
removeObserverder LifecycleRegistry wurde behoben, der eine LifecycleObserver-Readdition unbrauchbar machte.InvalidationTracker für benutzerdefinierte Datenbanken korrigiert b/63162311
1.0.0 Alpha 6 – 25. Juli 2017
Verhaltensänderungen
Die Reihenfolge der LifecycleObserver-Aufrufe wurde geändert. Bisher wurden Beobachter immer in der Reihenfolge ihrer Hinzufügung aufgerufen: Wenn
observer1vor demobserver2hinzugefügt wird, erhält esON_CREATEund alle anderen Ereignisse vor demobserver2. Dies gilt nicht mehr für Zerstörungsereignisse, da Beobachter in umgekehrter Reihenfolge der Addition aufgerufen werden. Aktuelles Verhalten: Wennobserver1vorobserver2hinzugefügt wird, wirdON_CREATEzuerst anobserver1und dann anobserver2gesendet (dies gilt fürON_STARTundON_RESUME), aber das EreignisON_PAUSEwird zuerst anobserver2und erst dann anobserver1gesendet (gleiche fürON_STOPundON_DESTROY).Raum löst eine Ausnahme aus, wenn die Migration fehlt. Bisher hat Room die Datenbank nur gelöscht, aber jetzt stürzt die App ab. Entwickler können das Löschverhalten durch Aufrufen der Builder API aktivieren. b/63872392
API-Änderungen
Die Methode
fallbackToDestructiveMigration()wurdeRoomDatabase.Builderhinzugefügt zu die Datenbank löschen, wenn die Migration fehlt. b/63872392Architekturkomponenten hängen jetzt von der Support Library 26.0.0 ab
Fehlerkorrekturen
Die Verarbeitung von @Relation, die in @Embedded verschachtelt ist, wurde behoben. b/63736065
Fehler beim Testen der Migration für Tabellen mit automatisch erhöhtem Primärschlüssel wurden behoben. b/63393618
Jetzt erhalten @Abfragen, die DELETE- oder UPDATE-Abfragen ausführen, Argumente korrekt. b/63872538
ViewModels werden jetzt beibehalten, wenn sich das Eigentümerfragment im Backstack befindet und die Konfiguration zweimal geändert wird. b/38445801
1.0.0 Alpha 5 – 18. Juli 2017
API-Änderungen
Eine neue Callback-Methode wurde zu
RoomDatabase.Builderhinzugefügt, um zu beobachten, wann eine Datenbank erstellt oder geöffnet wird. b/62699324@Query kann jetzt RxJava
MaybeoderSinglezurückgeben. b/62231019
Sie müssen sich auf das Artefakt android.arch.persistence.room:rxjava2 verlassen, um RxJava-Unterstützung für Room hinzuzufügen.
Fehlerkorrekturen
@Delete-Abfragen ohne Parameter wurden korrigiert. b/63608092Probleme bei der Prüfung des Raumtyps auf Getter und Setter wurden behoben. b/63733651
1.0.0 Alpha 4 – 11. Juli 2017
API-Änderungen
Eine neue praktische Methode (
runInTransaction()) wurde zu RoomDatabase hinzugefügt.Die Methoden
@Insert,@Deleteund@Updatekönnen jetzt Parameter aus verschiedenen Entitätstypen haben. b/62682405
Fehlerkorrekturen
Die
byte[]-Verarbeitung in@Dao-Methoden wurde korrigiert. b/62460045Bei der Migrationsprüfung in Room wird jetzt nicht zwischen Groß- und Kleinschreibung unterschieden. b/62875382
Die Proguard-Konfiguration für das Lebenszyklusartefakt wurde korrigiert. b/62113696
1.0.0 Alpha 3 – 15. Juni 2017
API-Änderungen
In
@OnLifecycleEventwird derzeit nur ein Ereignisparameter unterstützt. Dies ist eine Änderung in Vorbereitung auf die Java 8-Unterstützung, damit wir zu zukünftig mit Standardmethoden. In Bezug auf diese Änderung Die mit@OnLifecycleEvent(ON_ANY)annotierten Methoden können einen zweiten Parameter des Typs empfangenEvent(erster Parameter istLifecycleOwner). Weitere Informationen finden Sie in der Dokumentation zum Lebenszyklus.Die Klassen
LifecycleActivityundLifecycleFragmentwerden in das Artefaktandroid.arch.lifecycle:extensionsverschoben.MigrationTestHelper empfängt die Instrumentation-Instanz. statt der
Context, um das Schema aus den Test-Assets zu lesen und die Datenbank im Anwendungskontext.Anmerkungen
@Insert,@Deleteund@Updatein@DAOkönnen jetztIterableals Parametertyp verwendet werden. b/62259820
Fehlerkorrekturen
Überschriebene Methoden mit Lebenszyklusereignissen werden nicht mehr mehrmals aufgerufen.
Mehrere
IN-Parameter werden jetzt korrekt verarbeitet. b/62608681Abstrakte DAO-Klassen können jetzt einen Konstruktor haben, der die
@Databaseempfängt Instanz. b/38488747DAOkönnen jetzt eine Superklasse/Schnittstelle mit Typparametern haben. b/62103620
1.0.0 Alpha 2 – 2. Juni 2017
API-Änderungen
Der EntwertungsTracker empfängt jetzt die Liste der geänderten Tabellennamen. (b/38468740)
Die API-Oberfläche der Klasse SupportSQLiteDatabase wurde reduziert. (b/38481640)
Fehlerkorrekturen
- Proguard-Dateien für Lebenszyklen. (b/62113696)
- Datenverlust mit Typkonverter (b/62100716)
- Rückgabe von
Long[]von@Insert-Abfragen zulassen.
1.0.0 Alpha 1 – 17. Mai 2017
MinSDK:14
Allgemeine Hinweise
Obwohl wir vor der Einführung viele Tests durchgeführt haben, befinden sich Architekturkomponenten derzeit in der Alphaphase. Wenn Sie eine Produktions-App erstellen, beachten Sie, dass sich die API vor der Version 1.0 ändert und möglicherweise nicht ganz robust ist. Wenn Sie mit dem Beheben von Problemen in von Ihnen verwendeten Bibliotheken nicht vertraut sind, empfehlen wir, zuerst Architekturkomponenten in Nebenprojekten auszuprobieren.
Wir raten davon ab, jetzt alle Nutzer zu migrieren. Wir halten eine Migrationsanleitung für die Version 1.0 der Architekturkomponenten bereit.
Bekannte Einschränkungen und Probleme
- Der Lebenszyklus
FragmentundActivityCompatin der Supportbibliothek implementieren die SchnittstelleLifecycleOwnernoch nicht. Sie werden angezeigt, wenn die Architekturkomponenten Version 1.0.0 erreichen.