【发布时间】:2020-09-09 22:08:01
【问题描述】:
我有一个场景,当用户单击主活动中的按钮时,我需要重新启动我的应用程序。
**AppFlow:
** 活动A -> 活动B -> 活动C
用户在 ActivityC 中按下返回按钮,然后在 ActivityB 中按下并到达 ActivityA。
在 ActivityA 中,当用户单击按钮时,应用程序通过清除后台堆栈关闭,并尝试通过完成它来重新启动 ActivityA。当应用程序从 ActivityA 退出时会发生什么,ActivityB 会出现一秒钟然后应用程序退出。我的要求是完成 ActivityA 时不应出现 backstack 中的任何活动。
我使用了以下逻辑:
Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NEW_TASK);
Log.D(LOG_TAG , "finishAndRestartApp() -> creating pending intent");
PendingIntent pendingIntent = PendingIntent.getActivity(this.getBaseContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager mgr = (AlarmManager) this.getBaseContext().getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, pendingIntent);
Log.D(LOG_TAG ,start finishing mainActivity AND RESTART IT");
finish();
谁能帮我解决这个问题。
提前致谢。
【问题讨论】:
-
您的意思是当您单击 Activity A 上的按钮时 -> 进入 Activity B 并退出应用程序?
-
不,当点击 ActivityA 中的 Button 时,App 退出显示 ActivityB 几秒钟。当我尝试在 ActivityA 中退出应用程序时,我不想看到任何其他活动
标签: android android-activity back-stack