簡體   English   中英

單擊按鈕時,我無法在無限線程上更新多個

[英]I can't update more than one on my infinite thread in button click

在下面的代碼中,我嘗試每秒將用戶的當前位置作為 x 和 y 軸。在循環的第一次,代碼有效。但是第二次等等它不起作用。這段代碼中缺少什么。什么我應該做嗎。謝謝。

new Thread(new Runnable(){
    @Override
    public void run() {
        while (true) {
            runOnUiThread(new Runnable() {
                public void run() {
                    textViewXAltitude.setText(String.valueOf(gps.getLatitude()));
                    textViewYAltitude.setText(String.valueOf(gps.getLongitude()));

                }
            });
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}).start();

您應該由 Handler 執行此操作;例如:

        final Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            if (msg.what == 0x123) {
                textViewX.setText(String.valueOf(i++));
                textViewY.setText(String.valueOf(j++));
            }
        }
    };

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    handler.sendEmptyMessage(0x123);
                }
            }, 0, 1000);
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM