如果我想要一个意图到其他类的计时器,我应该输入什么代码?

时间:2013-07-30 15:45:12

标签: android android-intent if-statement timer

如果我想要一个具有定时器的类,那么我应该放置什么代码?但它有一个按钮,如果我点击按钮,它将自动意图到其他类。它就像一个游戏,如果你没有点击按钮,你将被转移到另一个类,因为它有一个时间限制 例如:

   @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

我不知道我应该输入什么代码,所以我把睡眠虽然我知道它是错误的

我在最后一个括号上有一个错误我在括号中非常noob你可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

你可以像这样使用超时:

private void timeout() {

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

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

}
    }
    }, 5000);

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

答案 1 :(得分:1)

根据我的理解,您要尝试的是,如果点击Activity或时间已到,您想要转到下一个Button

  

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

使用您的代码,如果未点击Thread,则Button将无法运行,因此您需要在Listener之外移动该代码,以便{无论您希望它在哪里开始,都不会点击{1}}。

  

所以我把睡眠虽然我知道这是错误的

Button没问题,因为它位于后台sleep()

答案 2 :(得分:0)

将此用作参考

private void timeOutCheck() {
    new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    //call intent here
                }
            }, 5 * 1000);
}