【问题标题】:start new activity from gameloop thread从gameloop线程开始新的活动
【发布时间】:2013-06-23 16:59:44
【问题描述】:

我有一个实现 Runnable 的类,在这个类中实现了我的游戏的游戏循环。简而言之,我有一个秒表,我想在特定时间向用户显示一条带有选项的消息。在这一点上,用户要么是赢家要么必须再试一次。 我知道我无法在线程内开始新的活动。所以,我有以下选择:

  1. 使用 Handler 和 Looper 开始我的新活动
  2. 以某种方式终止线程并开始我的新活动
  3. 停止线程并转到新活动

还有其他方法吗? 我想知道最好的方法。

所有的 cmets 和回复都会对我有所帮助,谢谢。

【问题讨论】:

  • 也许在empty style Dialog 中开始您的新Activity,当用户选择一个选项或以您在新活动中强制用户执行的任何操作结束时,在此特定的隐藏Dialog如果Dialog 必须将 setCancelable() 设置为 false。

标签: android multithreading android-activity


【解决方案1】:

我建议使用处理程序。我不熟悉 looper 类,但我只是在从 uiThread 创建线程时简单地传递了一个 Handler 对象。然后从线程向处理程序发送消息,并通过覆盖处理程序中的句柄消息来执行适当的 ui 操作。所以我的建议是为处理程序(在 ui 线程中)使用匿名内部类,然后将其传递给可运行类。

【讨论】:

    【解决方案2】:

    我知道我无法在线程中启动新活动。

    您可以在 UI 线程中启动一个新的Activity

    为此,您可以使用runOnUiThread(Runnable action) 方法。例如,如果您在Activity,只需执行以下操作:

    runOnUiThread(new Runnable() 
    {
        public void run() 
        {
            // start another Activity here
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多