Clean the slice in onUnpinned rather than onBinded.
Change-Id: Idda7cbedb0ce7b0ec83fc2f11a2505634d2b465c Bug: 249101421
This commit is contained in:
@@ -187,6 +187,7 @@ public class SettingsSliceProvider extends SliceProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSliceUnpinned(Uri sliceUri) {
|
public void onSliceUnpinned(Uri sliceUri) {
|
||||||
|
mSliceWeakDataCache.remove(sliceUri);
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
if (!VolumeSliceHelper.unregisterUri(context, sliceUri)) {
|
if (!VolumeSliceHelper.unregisterUri(context, sliceUri)) {
|
||||||
SliceBroadcastRelay.unregisterReceivers(context, sliceUri);
|
SliceBroadcastRelay.unregisterReceivers(context, sliceUri);
|
||||||
@@ -258,11 +259,6 @@ public class SettingsSliceProvider extends SliceProvider {
|
|||||||
loadSliceInBackground(sliceUri);
|
loadSliceInBackground(sliceUri);
|
||||||
return getSliceStub(sliceUri);
|
return getSliceStub(sliceUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the SliceData from the cache after it has been used to prevent a memory-leak.
|
|
||||||
if (!getPinnedSlices().contains(sliceUri)) {
|
|
||||||
mSliceWeakDataCache.remove(sliceUri);
|
|
||||||
}
|
|
||||||
return SliceBuilderUtils.buildSlice(getContext(), cachedSliceData);
|
return SliceBuilderUtils.buildSlice(getContext(), cachedSliceData);
|
||||||
} finally {
|
} finally {
|
||||||
StrictMode.setThreadPolicy(oldPolicy);
|
StrictMode.setThreadPolicy(oldPolicy);
|
||||||
|
Reference in New Issue
Block a user