Fixed
Status Update
Comments
ha...@gmail.com <ha...@gmail.com> #2
since these are in public API (:/) we need to do this in 1.2
ha...@gmail.com <ha...@gmail.com> #3
since it is already marked as deprecated, we can probably do it by now.
ha...@gmail.com <ha...@gmail.com> #4
Opening diff shortly
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/61 .
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
https://android-review.googlesource.com/1396827
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request from
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
su...@google.com <su...@google.com>
su...@twofortyfouram.com <su...@twofortyfouram.com> #6
Thank you for the quick response!
If it helps, this is the strict mode violation stacktrace I get:
StrictMode policy violation; ~duration=94 ms: android.os.strictmode.DiskReadViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1504)
at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:251)
at java.io.File.exists(File.java:815)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:605)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:596)
at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:552)
at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:747)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:400)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:174)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:174)
at androidx.work.impl.utils.Preferences.<init>(Preferences.java:45)
at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:194)
at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:162)
at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:138)
at androidx.work.WorkManager.initialize(WorkManager.java:158)
at com.twofortyfouram.app.work.WorkSetup.setupWorkHelper(WorkSetup.java:70)
at com.twofortyfouram.app.work.WorkSetup.setupWork(WorkSetup.java:59)
at com.twofortyfouram.app.ApplicationImpl.onCreate(ApplicationImpl.java:89)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
If it helps, this is the strict mode violation stacktrace I get:
StrictMode policy violation; ~duration=94 ms: android.os.strictmode.DiskReadViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1504)
at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:251)
at java.io.File.exists(File.java:815)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:605)
at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:596)
at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:552)
at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:747)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:400)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:174)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:174)
at androidx.work.impl.utils.Preferences.<init>(Preferences.java:45)
at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:194)
at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:162)
at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:138)
at androidx.work.WorkManager.initialize(WorkManager.java:158)
at com.twofortyfouram.app.work.WorkSetup.setupWorkHelper(WorkSetup.java:70)
at com.twofortyfouram.app.work.WorkSetup.setupWork(WorkSetup.java:59)
at com.twofortyfouram.app.ApplicationImpl.onCreate(ApplicationImpl.java:89)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
su...@twofortyfouram.com <su...@twofortyfouram.com> #7
Reproduced with alpha 10.
Description
Version used: Alpha 10
Devices/Android versions reproduced on: All
WorkManager performs disk IO on the main thread during application startup, as it touches disk for its SharedPreferences file. Ideally this would be done in a background thread to avoid adding delays to app launch.
I was able to identify this by removing the auto initialization ContentProvider via the manifest merger, enabling strict mode in Application.onCreate(), and then manually initializing WorkManager after strict mode was turned on.