Я нахожу доступные утечки памяти в моем Android приложении, LeakCanary всегда говорит, что функция обратного вызова AppOpsManager OnOpChangedListener имеет утечки для MainActivity. Я много искал в Google и SF, но не нашел для этого никакого решения. Ниже мой код, пожалуйста, помогите устранить эту утечку памяти.
@Override
protected void onCreate(Bundle savedInstanceState) {
appOpsManager = (AppOpsManager) getApplicationContext().getSystemService(Context.APP_OPS_SERVICE);
appOpsManager.startWatchingMode(AppOpsManager.OPSTR_GET_USAGE_STATS, getApplicationContext().getPackageName(), usageOpListener);
}
private final AppOpsManager.OnOpChangedListener usageOpListener = new AppOpsManager.OnOpChangedListener() {
@Override
public void onOpChanged(String op, String packageName) {
if (packageName == null || getApplicationContext().getPackageName().equals(packageName)) {
if (AppOpsManager.OPSTR_GET_USAGE_STATS.equals(op)) {
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
getApplicationContext().startActivity(myIntent);
}
}
}
};
@Override
protected void onDestroy() {
appOpsManager.stopWatchingMode(usageOpListener);
}