From 44eac4831a79a27be5ecba8e0fe5250d0c0fced8 Mon Sep 17 00:00:00 2001 From: okjack Date: Wed, 3 Jul 2024 16:29:53 +0800 Subject: [PATCH] Fix restartApp --- .../android/tv/ui/activity/SettingCustomActivity.java | 4 +++- app/src/main/java/com/fongmi/android/tv/utils/Util.java | 6 ++++-- .../android/tv/ui/fragment/SettingCustomFragment.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java index 119542300..afd950066 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java @@ -236,6 +236,7 @@ public class SettingCustomActivity extends BaseActivity implements MenuKeyCallba public void setCacheDir(String dir) { Setting.putThunderCacheDir(dir); mBinding.cacheDirText.setText(dir); + App.post(() -> Util.restartApp(this), 1000); } @Override @@ -243,7 +244,7 @@ public class SettingCustomActivity extends BaseActivity implements MenuKeyCallba Setting.putLanguage(lang); LanguageUtil.setLocale(LanguageUtil.getLocale(Setting.getLanguage())); mBinding.languageText.setText((ResUtil.getStringArray(R.array.select_language))[Setting.getLanguage()]); - Util.restartApp(this); + App.post(() -> Util.restartApp(getActivity()), 500); } @Override @@ -251,6 +252,7 @@ public class SettingCustomActivity extends BaseActivity implements MenuKeyCallba int index = 1; Setting.putParseWebView(index); mBinding.parseWebviewText.setText(parseWebview[index]); + App.post(() -> Util.restartApp(this), 5000); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index cc1073982..b024b94f0 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -188,8 +188,10 @@ public class Util { public static void restartApp(Activity activity) { Intent intent = activity.getBaseContext().getPackageManager().getLaunchIntentForPackage(activity.getBaseContext().getPackageName()); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - activity.startActivity(intent); + ComponentName componentName = intent.getComponent(); + Intent mainIntent = Intent.makeRestartActivityTask(componentName); + activity.startActivity(mainIntent); + Runtime.getRuntime().exit(0); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java index dce98d730..1d0ce7335 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java @@ -123,7 +123,7 @@ public class SettingCustomFragment extends BaseFragment { Setting.putLanguage(which); LanguageUtil.setLocale(LanguageUtil.getLocale(Setting.getLanguage())); dialog.dismiss(); - Util.restartApp(getActivity()); + App.post(() -> Util.restartApp(getActivity()), 500); }).show(); }