当前位置: 首页 > 面试题库 >

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

裴泰平
2023-03-14
问题内容

我有一个小型的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);
        } 
    }); 
}

问题答案:

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

要执行您想要的操作,您实际上不需要其他线程。您可以使用HandlerRunnable来代替,如下所示。

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        button1.performClick();
    }
}, 5000);

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



 类似资料:
  • 问题内容: 我想在两次通话之间延迟5秒…我该如何在jQuery中执行此操作…似乎jQuery对此不起作用… 问题答案: 您可以使用普通的javascript,这将在5秒后调用一次your_func: 如果您的函数没有参数且没有显式接收器,则可以直接调用我曾经用过一个插件。它具有和方法。

  • 问题内容: 我试图在用户按下屏幕上的按钮时自动将SMS消息发送到特定号码。 这是我的代码: xxxxxxx =电话号码 我具有以下权限: 当我按下按钮时,它将带我到另一个屏幕,在该屏幕上我可以编辑文本并按发送。我只希望它自动执行此过程,而无需带我到另一个屏幕。因为已经定义了消息,所以我只想将其发送到特定号码。 而且我不确定我是否将相应的电话号码放在第二行代码中。我必须首先在其中输入国家代码吗?或者

  • 问题内容: 我希望能够在指定的延迟后调用以下方法。在目标c中,有类似以下内容: android和java中的此方法是否等效?例如,我需要能够在5秒钟后调用一个方法。 问题答案: Kotlin Java

  • 我用Webview创建了一个应用程序,需要自动按下按钮 返回null。 任何帮助都将不胜感激!

  • 我正在为Android在Eclipse中编写一个应用程序。该应用程序不断与Web服务器中的内容进行通信。在服务器中,我有一个带有另一个按钮的html文件。我希望当我按下Android应用程序中的按钮时,html文件中的按钮被自动单击...是否可能。请建议... 我看到下面的代码(jquery): 谢啦

  • 问题内容: 我想在更改背景之间的命令之间设置延迟。我尝试使用线程计时器,并尝试使用运行和捕获。但这不起作用。我试过了 但这只是变成黑色。 问题答案: 试试这个代码: