【问题标题】:How can I fix this intent issue?我该如何解决这个意图问题?
【发布时间】:2016-03-18 05:18:30
【问题描述】:

TL;DR:

如何让一个意图优先于另一个?

如果同时运行两个意图,我希望只启动其中一个意图。


我的游戏在后台服务中运行了一个 20 秒的计时器,当该计时器结束时,一个新的活动(游戏结束屏幕)通过一个意图启动。用户在这 20 秒内按下按钮来更改活动(同样,通过意图)。

问题是,如果用户在计时器结束的同时按下按钮,则下一个活动开始而不是游戏结束屏幕。现在,计时器结束了,用户无缘无故地随机按下按钮。我怎样才能解决这个问题? 有什么方法可以确保游戏结束屏幕会在 20 秒后打开?

我没有提供太多代码,因为它主要只是开始意图。如果您需要任何详细信息,请随时问我。

【问题讨论】:

  • 使用标志变量很简单,它可以保持转换状态,一旦触发任何意图,然后停止使用该标志的其他意图。!
  • 在 TimerEnd 时,关闭按钮监听功能,使按钮工作 20 秒左右。
  • @BASEERULHASSAN 如何禁用 onClick?我有大约 20 个活动,所以我不知道要禁用哪个按钮,所以我需要将它们全部禁用...非常感谢
  • @FireCandy 我该怎么做?我以前从未在我的意图中使用过标志。你介意告诉我怎么做吗?
  • 从未使用过标志变量?

标签: android android-layout android-intent optimization timer


【解决方案1】:

应该对用户点击事件进行计时器检查。或者您可以使用标志/布尔值来维护状态。

我不知道你的代码,只使用简单的条件 if..

 if (timer <= 0){
      //open whatever u want and reset timer again..
 }

【讨论】:

  • 你能举个例子吗?我不太确定你的意思...非常感谢,我真的很感激。
【解决方案2】:

我建议您将全局变量作为标志, 假设int = 0 现在将其初始化为“0”,并根据您的两个意图给出如下条件:

 if(i == "0"){
    .
    .
    .
    //fire your intent..
i= 1;
    }

,然后随时将该变量刷新为“0”。希望您有所了解。

【讨论】:

  • 但是它会重置对吗?即使计时器没有停止,我也将无法进行下一个活动。另外,这不只是一个 int,而不是一个标志吗?我很困惑...谢谢,请告诉我
  • 另外,我需要在计时器和带按钮的活动中使用单独的代码吗?
  • 请正确阅读我的答案,我告诉过您将该变量刷新为“0”...!!!现在由您决定何时重置它。
猜你喜欢
  • 2020-03-25
  • 2020-02-14
  • 2021-10-23
  • 1970-01-01
  • 2021-07-31
  • 2020-12-28
相关资源
最近更新 更多