androidタイミングメソッド

2074 ワード

package com.love.timers; 


import java.text.DateFormat; 
import java.text.Format; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Timer; 
import java.util.TimerTask; 


import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.view.View; 
import android.widget.TextView; 


public class MainActivity extends Activity 
{ 


    private int recLen = 100;  
    private TextView time; 
    private Timer timer; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        this.setContentView(R.layout.activity_main); 


        time = (TextView) this.findViewById(R.id.timer); 


        DateFormat format = new SimpleDateFormat("HH:mm:ss"); 
        time.setText(format.format(new Date())); 


         
        timer = new Timer(); 
         
        timer.schedule(task, 1000, 1000);       // timeTask 
         
    } 
     
    final Handler handler = new Handler(){   
        @Override   
        public void handleMessage(Message msg){   
            switch (msg.what) {   
            case 1:   
                Bundle b = msg.getData(); 
                String date = b.getString("date"); 
                time.setText(date); 
                if(recLen < 0){   
                    timer.cancel();   
                    time.setVisibility(View.GONE);   
                }   
            }   
        }   
    };   
   
    TimerTask task = new TimerTask() {   
        @Override   
        public void run() {   
            recLen--;   
            Message message = new Message();   
            message.what = 1;   
            Bundle b = new Bundle(); 
            DateFormat format = new SimpleDateFormat("HH:mm:ss"); 
            b.putString("date", format.format(new Date())); 
            message.setData(b); 
            handler.sendMessage(message);   
        }   
    };   


}