I want to do some long running task on a button click, if user click again on that button current task forcefully stopped and will do next task ?
You can not restart a thread once it is stopped.
I would suggest to use Looper/Handler API to put the tasks in the queue and let the handler execute them on separate thread.
I have demo project for looper/handler here with explanation. Have a look if you want to implement it this way.
Another option (as mentioned by @Guna) is, you can crate cached pool of threads and let the executor run the tasks on threads.