Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách ngăn chặn thread bị start nhiều lần trong Android

Giới thiệu

Nếu user nhấn nút nhiều lần nhanh, có thể tạo nhiều thread không mong muốn. Ví dụ dùng cờ boolean để ngăn chặn.

Bước 1-2: Project & Giao diện

EditText, Button, TextView.

Bước 3: MainActivity.java - dùng cờ boolean

package com.example.myapplication;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    EditText edit_query;
    TextView textView;
    boolean isRunning = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edit_query = findViewById(R.id.edit_query);
        textView = findViewById(R.id.text);

        findViewById(R.id.click).setOnClickListener(v -> {
            if (isRunning) return; // Đang chạy, bỏ qua
            runThread();
        });
    }

    private void runThread() {
        final String text = edit_query.getText().toString();
        if (text.isEmpty()) return;

        isRunning = true;
        new Handler().postDelayed(() -> {
            textView.setText(text);
            isRunning = false; // Reset cờ sau khi xong
        }, 5000);
    }
}

Chạy ứng dụng

Nhấn nút nhiều lần liên tục: chỉ lần đầu có hiệu lực, sau 5 giây mới cho chạy lại.

Cách ngăn chặn thread bị start nhiều lần trong Android