【问题标题】:How to kill an Android activity [duplicate]如何杀死Android活动[重复]
【发布时间】:2020-12-27 19:02:51
【问题描述】:

我有一个包含三个活动的应用程序。 FirstActivity、SecondActivity、ThirdActivity。

在 FirstActivity 中有一个按钮,用于启动 SecondActivity。在 SecondActivity 中,有两种方法可以进入到 ThirdActivity。但是有一种方法有代码:

    Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
    finish();
    startActivity(intent);

两种变体都使用此代码 sn-p。

  1. 此代码自动在 +- 12 秒内运行
  2. onBackPressed()方法中

这是我的问题:当用户按下返回时,ThirdActivity 打开,但在几秒钟后,ThirdActivity 从第一个变体再次打开。

那么,如何完全杀死一个Activity,让它两次都不会启动另一个Activity?

【问题讨论】:

  • 你是否在 12 秒后使用处理程序来运行代码?
  • @AmirK.Zarini 是的!有问题吗?
  • @HarisDautović 感谢您的建议,但不幸的是我还没有找到解决问题的方法。
  • @Laughing_Man 是的,如果您不再需要它,则必须使用 handler.removeCallbacks(yourRunnable) 取消它。当您从 onBackPressed 处理程序启动 ThirdActivity 时,删除您未来的任务以停止运行。

标签: java android


【解决方案1】:

如果你不再需要它,你应该取消你未来的任务

handler.removeCallbacks(yourRunnable)

当您从 onBackPressed 而不是处理程序启动 ThirdActivity 时

【讨论】:

    【解决方案2】:

    我不确定,但在开始活动后尝试拨打 finish() 可能会有所帮助,但我不确定:

     Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
     startActivity(intent);
     finish();
    

    【讨论】:

    • 不幸的是,它没有帮助。我用过调试器,程序运行这个方法两次。
    • @Laughing_Man 答案中给出的代码将正常工作。
    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 2013-05-26
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2016-08-30
    相关资源
    最近更新 更多