Android 从gameloop线程启动新活动

Android 从gameloop线程启动新活动,android,multithreading,android-activity,Android,Multithreading,Android Activity,我有一个实现Runnable的类,在这个类中实现了游戏的gameloop。简而言之,我有一个秒表,我想在特定的时间向用户显示一条带有选项的消息。此时,用户要么是赢家,要么必须重试。 我知道我不能在线程内开始新的活动。因此,我有以下选择: 使用处理程序和循环器启动我的新活动 以某种方式终止线程并开始我的新活动 停止线程并转到新活动 还有别的办法吗? 我想知道最好的方法 所有的评论和回复都会对我有帮助,谢谢 我知道我不能在线程内开始新的活动 您可以在UI线程内启动新的活动 为此,可以使用方法。例如,

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

  • 使用处理程序和循环器启动我的新活动
  • 以某种方式终止线程并开始我的新活动
  • 停止线程并转到新活动
  • 还有别的办法吗? 我想知道最好的方法

    所有的评论和回复都会对我有帮助,谢谢

    我知道我不能在线程内开始新的活动

    您可以在UI线程内启动新的
    活动

    为此,可以使用方法。例如,如果您正在进行
    活动
    ,只需执行以下操作:

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

    我建议使用处理程序。我不熟悉looper类,但我只是在从uiThread创建线程时传递了一个Handler对象。然后从线程向处理程序发送消息,并通过覆盖处理程序中的handlemessage来执行适当的ui操作。因此,我的建议是为处理程序使用匿名Inner类(在ui线程中)然后将其传递给runnable类。

    可能在
    空样式对话框中启动新的
    活动
    ,当用户选择一个选项或以您在新活动中强制用户执行的任何操作结束时,隐藏
    对话框
    。在这种特定情况下,
    对话框
    必须将setCancelable()设置为false。