import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ProgressBar;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private ProgressBar bar;
    private Handler handler;
    private Runnable runnable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bar=findViewById(R.id.progressBar);
   findViewById(R.id.startHandler).setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           bar.setVisibility(View.VISIBLE);
           handler.post(runnable);
       }
   });

        handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                bar.setProgress(msg.arg1);
                handler.post(runnable);
            }
        };


        runnable = new Runnable() {
            int i = 0;

            @Override
            public void run() {
                System.out.println("执行中...");
                i = i + 10;

                Message msg = handler.obtainMessage();
                msg.arg1 = i;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                handler.sendMessage(msg);

                if (i == 100) {
                    handler.removeCallbacks(runnable);
                }
            }
        };
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">


    <Button
            android:text="Button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" android:id="@+id/startHandler"/>

    <ProgressBar
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:id="@+id/progressBar"/>
</LinearLayout>
最后修改:2020 年 03 月 13 日
如果觉得我的文章对你有用,请随意赞赏