如何在延迟5秒后自动点击Android中的按钮

Cod*_*er1 1 java mobile android

我有一个小的Android应用程序,在5秒后自动点击按钮.我用过performClick();但这不起作用.当计时器变为零时,它就会崩溃.

这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    try {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.local);
        getActionBar().setIcon(R.drawable.menu_drop);

        buttonClick();

        Thread timer = new Thread(){
            public void run(){ 
                try{
                    sleep(5000);
                } catch (InterruptedException e){
                    e.printStackTrace();
                }finally{
                    button1.performClick();
                }
            }
        };
        timer.start();
    } catch (NotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public void buttonClick() {
    button1 = (Button) findViewById(R.id.button);
    button1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(TestButton2.this, LocationView.class);
            startActivity(i);
        } 
    }); 
}
Run Code Online (Sandbox Code Playgroud)

Geo*_*gan 6

您应该发布包含错误消息的logcat,但有一个问题可能是您正在访问UI线程的UI元素,这不是一个好主意.

要做你想做的事,你真的不需要另一个线程.您可以使用a Handler和延迟,Runnable如下所示.

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        button1.performClick();
    }
}, 5000);
Run Code Online (Sandbox Code Playgroud)

这将安排Runnable在5秒后在UI线程上执行.如果仍然崩溃从logcat发布堆栈跟踪.