1

如果我想要一个有一个定时器的类,我应该放什么代码?但是它有一个按钮,如果我单击该按钮,它将自动指向其他类。它就像一个游戏,如果你不点击按钮,你将被转移到另一个班级,因为它有时间限制示例是:

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.easyone);
        a = (ImageButton) findViewById(R.id.ib_a);
        b = (ImageButton) findViewById(R.id.ib_b);
        c = (ImageButton) findViewById(R.id.ib_c);
        a.setOnClickListener(new View.OnClickListener() {

            @Override   
               public void onClick(View v) {
                    Toast.makeText(getApplicationContext(),"CORRECT!",
                            Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(getApplicationContext(),EasyTwo.class);
                    startActivity(intent);
            }
        });
    }

    Thread timer = new Thread(){

        protected void timeout() {
    try {
        sleep(5000);

        }catch(InterruptedException e){
            e.printStackTrace();

            Intent intent = new Intent(getApplicationContext(),TimesUp.class);
            startActivity(intent);
        }
    }
};start();

    }
}//this one

我不知道我应该输入什么代码,所以尽管我知道这是错误的,但我还是休眠了

我在最后一个括号上有一个错误我在括号里很菜鸟你能帮我吗?

4

3 回答 3

2

您可以像这样使用超时:

private void timeout() {

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
 Intent intent = new Intent(getApplicationContext(),MainMenu.class);
            startActivity(intent);

}
    }
    }, 5000);

我一直使用这种方法,我从来没有遇到任何问题。

于 2013-07-30T16:48:30.953 回答
1

Activity据我了解,您正在尝试做的是,如果Button单击或时间到了,您想转到下一个。

如果您不点击按钮,您将被转移到其他班级,因为它有时间限制

使用您的代码,Thread如果未单击,则不会运行,Button因此您需要将该代码移出,以便Listener在未单击时运行它Button,无论您希望它从哪里开始。

所以我睡了虽然我知道这是错的

sleep()没关系,因为它在背景上Thread

于 2013-07-30T15:54:09.857 回答
0

以此作为参考

private void timeOutCheck() {
    new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    //call intent here
                }
            }, 5 * 1000);
}
于 2018-11-03T07:19:37.443 回答