Additional callback on binder's death.
Bug: 180970738 Fixes: 180970738 Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest ChecksumsTest Change-Id: I1f0ce57a6dd0c3da847c0c858d9243fea7aa2a1f
This commit is contained in:
@@ -171,7 +171,7 @@ public class DataLoaderManagerService extends SystemService {
|
||||
}
|
||||
}
|
||||
|
||||
private class DataLoaderServiceConnection implements ServiceConnection {
|
||||
private class DataLoaderServiceConnection implements ServiceConnection, IBinder.DeathRecipient {
|
||||
final int mId;
|
||||
final IDataLoaderStatusListener mListener;
|
||||
IDataLoader mDataLoader;
|
||||
@@ -194,6 +194,13 @@ public class DataLoaderManagerService extends SystemService {
|
||||
mContext.unbindService(this);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
service.linkToDeath(this, /*flags=*/0);
|
||||
} catch (RemoteException e) {
|
||||
Slog.e(TAG, "Failed to link to DataLoader's death: " + mId, e);
|
||||
onBindingDied(className);
|
||||
return;
|
||||
}
|
||||
callListener(IDataLoaderStatusListener.DATA_LOADER_BOUND);
|
||||
}
|
||||
|
||||
@@ -218,6 +225,13 @@ public class DataLoaderManagerService extends SystemService {
|
||||
destroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void binderDied() {
|
||||
Slog.i(TAG, "DataLoader " + mId + " died");
|
||||
callListener(IDataLoaderStatusListener.DATA_LOADER_DESTROYED);
|
||||
destroy();
|
||||
}
|
||||
|
||||
IDataLoader getDataLoader() {
|
||||
return mDataLoader;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user