当前位置: 首页 > 知识库问答 >
问题:

如何从后退堆栈中删除我的活动,当我点击后退按钮[复制]

赫连飞沉
2023-03-14

我希望当用户按下后退按钮时,我的活动从后退堆栈中清晰可见。我正在使用此意图来打开我的活动:

Intent i = new Intent(context, OutGoingActivity.class);
i.putExtra("Number", incomingNumber);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);

我希望当我按下后退按钮时,我的OutGoingActivity活动将从堆栈中删除。

每当我启动我的活动时,一个新的活动应该被打开,而不是从堆栈中打开。

共有2个答案

华誉
2023-03-14

如果您想从堆栈中删除活动,则可以使用以下代码:

    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(1);

     Intent mintent = new Intent(context, OutGoingActivity.class);
     mintent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
     context.startActivity(mintent);
     finish();

但是如果你想删除所有的活动,那么你应该尝试下面的代码:

ActivityCompat.finishAffinity(OutGoingActivity.this);
finish(); 

希望它能帮助你。

翁宜年
2023-03-14

只需使用finish();用于删除当前活动。

喜欢

Intent i = new Intent(context, OutGoingActivity.class);
i.putExtra("Number", incomingNumber);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);
// use finish()
finish();

当您调用完()方法时,onDestroy()方法将被执行。

 类似资料:
  • 问题内容: 我最近在许多Android应用程序和游戏中都注意到了这种模式:单击“后退”按钮以“退出”该应用程序时,会出现类似“请再次单击BACK退出”的消息。 我想知道,正如我越来越经常看到的那样,这是你可以以某种方式在活动中访问的内置功能吗?我看过许多类的源代码,但似乎找不到任何东西。 当然,我可以考虑几种很容易实现相同功能的方法(最简单的方法可能是在活动中保留一个布尔值,以指示用户是否已经单击

  • 我正在使用android 2.1,希望在Mapsavity上添加一个后退按钮。我在这一页上尝试了什么[在操作栏上显示后退按钮,但应用程序崩溃。我已经按照另一个论坛的建议将extends FragmentActivity替换为AppCompatActivity,但应用程序仍然崩溃。我知道这与操作栏有关,因为如果我删除它,应用程序就会工作。操作栏似乎为空。我被卡住了,已经启动了应用程序数次。下面是错误

  • 在写这个之前,我已经经历了很多stackoverflow问题。我对这个家伙的碎片背栈很困惑。 我在一个活动中的同一个容器上添加了三个片段 现在我想要的是,当用户按下片段3上的后退按钮时,它应该出现在第一个片段上,所以我已经覆盖了onBackPressed()方法。 但屏幕上什么也没发生,它让片段3继续运行。 更新 任何实现这一点的解决方案。

  • 我试图用这段代码来显示我的个人档案活动: 当我点击Profile菜单项时,我可以看到我的ProfileActivity,但我的ActionBar上没有任何back按钮来返回我以前的活动。 那么,我如何显示一些后退按钮?我的代码是否正确以显示菜单中的活动?

  • 我有一个玩家活动和浮动玩家(服务),点击后退按钮后,玩家活动关闭,浮动玩家开始行动,当我点击浮动玩家时,我想回到玩家活动,但没有再次运行创建方法。 我在StackOver Flow中读到了很多解决方案,特别是使用FLAG\u ACTIVITY\u CLEAR\u TOP和FLAG\u ACTIVITY\u SINGLE\u TOP标志,或者将android:launchMode=“singleTa

  • 好吧,所以我有点困惑该怎么处理这个。因此,我有了主活动,从那里可以启动一个活动到DegreePlan活动,从那里可以启动另一个活动到EditDegreeplan。我已经将EditDegreeplan设置为在Android清单中没有历史记录。问题是在他们保存EditDegreeplan后,它会启动一个活动到Degreeplan。因此,如果用户按下后退键,他们必须按两次才能再次进入主活动。我想摆脱它,