Refine WifiTetherSoftApManager and DataSaverBackend to avoid activity leaks
- Declare the service callback as static class and use WeakReference to avoid the callback link being occupied - Use application context instead of fragment context to avoid context being occupied by external modules Bug: 237273138 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=TetherSettingsTest make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest Change-Id: Icca145b8ef08b9949feafbbd4e761f8d50c99181
This commit is contained in:
@@ -27,6 +27,8 @@ import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DataSaverBackend {
|
||||
@@ -43,10 +45,11 @@ public class DataSaverBackend {
|
||||
private boolean mDenylistInitialized;
|
||||
|
||||
// TODO: Staticize into only one.
|
||||
public DataSaverBackend(Context context) {
|
||||
mContext = context;
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
mPolicyManager = NetworkPolicyManager.from(context);
|
||||
public DataSaverBackend(@NotNull Context context) {
|
||||
// TODO(b/246537614):Use fragment context to DataSaverBackend class will caused memory leak
|
||||
mContext = context.getApplicationContext();
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
|
||||
mPolicyManager = NetworkPolicyManager.from(mContext);
|
||||
}
|
||||
|
||||
public void addListener(Listener listener) {
|
||||
|
Reference in New Issue
Block a user