package com.example.test.testhandler2;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity1 extends Activity {
    private Button button1;
    private Button button2;
    private ProgressBar progressBar1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        progressBar1 = (ProgressBar) findViewById(R.id.progressBar1);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressBar1.setVisibility(View.VISIBLE);
                handler1.post(runnable1);
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("Test","Remove Thread");
                handler1.removeCallbacks(runnable1);
            }
        });
    }

    Handler handler1 = new Handler(){
        @Override
        public void handleMessage(Message msg){
            progressBar1.setProgress(msg.arg1);
            handler1.post(runnable1);
        }
    };

    Runnable runnable1 = new Runnable() {
        int i = 0;
        @Override
        public void run() {
            Log.i("Test","Begin Thread");
            i = i + 10;
            Message message1 = handler1.obtainMessage();
            message1.arg1 = i;
            Log.i("Test",String.format("%d",i));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            handler1.sendMessage(message1);

            if (i == 100){
                Log.i("Test","Remove Thread");
                handler1.removeCallbacks(runnable1);
            }
        }
    };
}