Comment arrêter ce fil dans android?

Dans mon application j'utilise ce fil pour faire tourner l'aiguille des secondes sur l'horloge. Mais le Problème est que si je ferme l'activité, le fil est toujours rester exécuter. Je veux arrêter le fil de sorte qu'il ne peut pas l'effet de la Bettry de l'appareil.

Ci-dessous mon code d'Activité où je suis rotation de l'Horloge de Seconde Main:

 public class ClockActivity extends Activity implements OnClickListener{
private Button chimeBtn;
private ImageView img;
private Thread myThread = null;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.clock_layout);
Runnable runnable = new CountDownRunner();
myThread = new Thread(runnable);
myThread.start();
chimeBtn = (Button) findViewById(R.id.chimeBtn);
chimeBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.chimeBtn:
playSound(R.raw.one_bell);
break;
}
}
public void playSound(int resources){
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), resources);
mp.start();
}
private void doPlay(){
new Thread(new Runnable() {
@Override
public void run() {
//TODO Auto-generated method stub
Log.v("log_tag", "this is seocond thread");
}
}).start();
}
public void doRotate() {
runOnUiThread(new Runnable() {
public void run() {
try {
Date dt = new Date();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = hours + ":" + minutes + "::" + seconds;
Log.v("log_tag", "Log is here Time is now" + curTime);
img = (ImageView) findViewById(R.id.imgsecond);
RotateAnimation rotateAnimation = new RotateAnimation((seconds - 1) * 6, seconds * 6,
Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setInterpolator(new LinearInterpolator());
rotateAnimation.setFillAfter(true);
img.startAnimation(rotateAnimation);
} catch (Exception e) {
Log.e("log_tag", "Error msg is " + e.toString());
}
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) {       
System.out.println("Back Key Press");
if (myThread != null) {
myThread.interrupt(); //says that the myThread should stop 
try{ 
myThread.join(); //make this myThread wait for the other myThread to  finish before returning
myThread = new Thread();
myThread = null;
}catch(InterruptedException ie){ 
//handle the case if the thread.join is interrupt 
//don't know if this will ever happen, if it can... throw a runtime exception?, or reinterrupt? 
Thread.currentThread().interrupt(); 
//  reinterrupt because thrown exception cleared interrupt and hope it's handled elsewhere 
} 
}
System.out.println("Back Key Press");
return true;       
}       
return super.onKeyDown(keyCode, event);     
} 
@Override
public void onDestroy(){
System.out.println("OnDestroy");
super.onDestroy();
}
class CountDownRunner implements Runnable {
//@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
//Log.v("log_tag", "Roate is going");
doRotate();
Thread.sleep(1000);
//doPlay();
} catch (InterruptedException e) 
{
//Thread.currentThread().interrupt();
} catch (Exception e) {
Log.e("log_tag", "Error is " + e.toString());
}
}
}
}
}

Merci d'avance.