java - 在 while 循环内使用 post 处理程序

标签 java android

我正在尝试在 while(true) 循环内使用 handler.postdelayed ,因此每 5 秒它将使用按钮发送一个特定值 但是当我按下按钮时它只是挂起而没有任何响应它不会崩溃也不会发送 我如何使用循环内延迟的帖子?

 btnsend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                while(true) {
                    final Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {


                                DatabaseReference childRoot = rootRoomName.push();
                                Map<String, Object> map = new HashMap<String, Object>();
                                map.put("Name", username);
                                map.put("message", Response1);
                                childRoot.updateChildren(map);



                        }
                    }, 5000);
                }
            }
        });

最佳答案

这是错误的。您正在使用 while(true) 循环杀死应用程序。相反,您应该在最后从 run() 方法内部调用 postDelayed,以便它每次执行后都会自行调度。像这样的事情:

handler = new Handler();

runnable = new Runnable() {
    @Override
    public void run() {
        handler.postDelayed(this, 5000);
    }
}

handler.post(runnable);

关于java - 在 while 循环内使用 post 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386359/

相关文章:

java - 包裹 android.os.Parcel@72a6e36 : Unmarshalling unknown type code 2131365270 at offset 500

java - 在 Android 中绘制 gles20 圆时的随机线条

android - Android Studio无法在设备上安装应用

PHP curl_setopt 与 IPRESOLVE 错误

java - 未经检查的 Actor : Is there a way to avoid it in this case?

java - 当我们退格删除最后一个字符时,TextWatcher 覆盖不会被调用。我如何知道最后一个字符是否被删除?

java - 如何使用 Jersey Rest 服务传送 .jad 文件?

android - 在模拟器中更改电话号码 - Android 开发

android - 通过 wifi direct 发送多个文件

java - 与 PHP 共享 Servlet session