【问题标题】:Stop Activity on Timeout超时停止活动
【发布时间】:2013-08-11 03:26:17
【问题描述】:

我使用startActivity(intent)ActivityA 开始一个ActivityB,然后我开始一个CountDownTimer。 现在超时,我想结束ActivityB 并再次将ActivityA 放在前台。 是否可以阻止另一个Activity

【问题讨论】:

  • 您可以在需要时使用计时器任务、倒计时计时器或处理程序调用finish()..stackoverflow.com/questions/17839419/android-thread-for-a-timer/…
  • “是否可以从另一个 Activity 停止?” - 不可以。一旦 ActivityB 进入运行状态,ActivityA 将处于暂停或停止状态。在系统资源不足的罕见情况下,ActivityA 甚至可能被操作系统破坏。正如 codeMagic 建议的那样,最好的方法是让 ActivityB 自行终止。然而,在这么说的时候,我想不出你想要达到什么目的以及为什么要这样做。

标签: android android-activity


【解决方案1】:

在活动 B 上执行此操作 -

 // 30 seconds coundowntimer 
 new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {

     }

     public void onFinish() {
       finish() // finish ActivityB
     }
  }.start();

当你开始ActivityB 时不要在ActivityA 上调用finish,否则不要在singleInstance 上调用finish()onFinish() 中调用startActivity(ActivityB.this,ActivityA.class)

【讨论】:

    【解决方案2】:

    一些代码会极大地帮助你理解你在做什么。但是,您可以轻松地将CoundtDownTimer 放入ActivityB 并在其onCreate() 中启动它。然后,当它完成时,只需在 ActivityB 中调用 finish() 并且只要你没有在 ActivityA 上调用 finish(),那么你应该得到你想要的结果。

    如果这不是您想要的,请提供一些代码并更好地解释您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      相关资源
      最近更新 更多