Fix memory leaks (#6335)

This commit is contained in:
peking_ling 2023-02-24 04:53:56 +08:00 committed by GitHub
parent 9fed944392
commit 240737e3ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 5 deletions

View File

@ -230,6 +230,14 @@ public class MainActivity extends CastEnabledActivity {
} }
} }
@Override
protected void onDestroy() {
super.onDestroy();
if (drawerLayout != null) {
drawerLayout.removeDrawerListener(drawerToggle);
}
}
private void checkFirstLaunch() { private void checkFirstLaunch() {
SharedPreferences prefs = getSharedPreferences(PREF_NAME, MODE_PRIVATE); SharedPreferences prefs = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
if (prefs.getBoolean(PREF_IS_FIRST_LAUNCH, true)) { if (prefs.getBoolean(PREF_IS_FIRST_LAUNCH, true)) {

View File

@ -73,12 +73,13 @@ public class CompletedDownloadsFragment extends Fragment
private SpeedDialView speedDialView; private SpeedDialView speedDialView;
private SwipeActions swipeActions; private SwipeActions swipeActions;
private ProgressBar progressBar; private ProgressBar progressBar;
private MaterialToolbar toolbar;
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) { @Nullable Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.simple_list_fragment, container, false); View root = inflater.inflate(R.layout.simple_list_fragment, container, false);
MaterialToolbar toolbar = root.findViewById(R.id.toolbar); toolbar = root.findViewById(R.id.toolbar);
toolbar.setTitle(R.string.downloads_label); toolbar.setTitle(R.string.downloads_label);
toolbar.inflateMenu(R.menu.downloads_completed); toolbar.inflateMenu(R.menu.downloads_completed);
inflateSortMenu(toolbar); inflateSortMenu(toolbar);
@ -168,6 +169,10 @@ public class CompletedDownloadsFragment extends Fragment
public void onDestroyView() { public void onDestroyView() {
EventBus.getDefault().unregister(this); EventBus.getDefault().unregister(this);
adapter.endSelectMode(); adapter.endSelectMode();
if (toolbar != null) {
toolbar.setOnMenuItemClickListener(null);
toolbar.setOnLongClickListener(null);
}
super.onDestroyView(); super.onDestroyView();
} }

View File

@ -196,7 +196,7 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu
Log.d(TAG, "Language is " + feed.getLanguage()); Log.d(TAG, "Language is " + feed.getLanguage());
Log.d(TAG, "Author is " + feed.getAuthor()); Log.d(TAG, "Author is " + feed.getAuthor());
Log.d(TAG, "URL is " + feed.getDownload_url()); Log.d(TAG, "URL is " + feed.getDownload_url());
Glide.with(getContext()) Glide.with(this)
.load(feed.getImageUrl()) .load(feed.getImageUrl())
.apply(new RequestOptions() .apply(new RequestOptions()
.placeholder(R.color.light_gray) .placeholder(R.color.light_gray)
@ -204,7 +204,7 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu
.fitCenter() .fitCenter()
.dontAnimate()) .dontAnimate())
.into(imgvCover); .into(imgvCover);
Glide.with(getContext()) Glide.with(this)
.load(feed.getImageUrl()) .load(feed.getImageUrl())
.apply(new RequestOptions() .apply(new RequestOptions()
.placeholder(R.color.image_readability_tint) .placeholder(R.color.image_readability_tint)

View File

@ -297,9 +297,9 @@ public class ItemFragment extends Fragment {
new RoundedCorners((int) (8 * getResources().getDisplayMetrics().density))) new RoundedCorners((int) (8 * getResources().getDisplayMetrics().density)))
.dontAnimate(); .dontAnimate();
Glide.with(getActivity()) Glide.with(this)
.load(item.getImageLocation()) .load(item.getImageLocation())
.error(Glide.with(getActivity()) .error(Glide.with(this)
.load(ImageResourceUtils.getFallbackImageLocation(item)) .load(ImageResourceUtils.getFallbackImageLocation(item))
.apply(options)) .apply(options))
.apply(options) .apply(options)

View File

@ -251,6 +251,10 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte
recyclerAdapter.endSelectMode(); recyclerAdapter.endSelectMode();
} }
recyclerAdapter = null; recyclerAdapter = null;
if (toolbar != null) {
toolbar.setOnMenuItemClickListener(null);
toolbar.setOnLongClickListener(null);
}
} }
private void refreshToolbarState() { private void refreshToolbarState() {

View File

@ -311,6 +311,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
unregisterReceiver(audioBecomingNoisy); unregisterReceiver(audioBecomingNoisy);
mediaPlayer.shutdown(); mediaPlayer.shutdown();
taskManager.shutdown(); taskManager.shutdown();
EventBus.getDefault().unregister(this);
} }
@Override @Override