在清单中声明 BackupAgentHelper 并执行以下操作时:
bmgr backup com.example.package
bmgr run
我得到以下我无法理解的错误跟踪:
2022-01-03 16:50:58.790 2208-2218/com.example.package E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
java.lang.Throwable: Explicit termination method 'close' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:180)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
at android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:64)
at android.os.Binder.execTransact(Binder.java:446)
似乎 BackupAgentHelper 没有关闭 ParcelFileDescriptor 的:
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) throws IOException
但据我了解,这不应该是必要的,也不是在他们的示例应用程序中手动完成的。
任何人都可以提供这里发生的事情的线索吗?