É comum, em aplicativos um pouco mais complexo, que seja necessário realizar alguma tarefa "pesada", ou seja, que demore um tempo considerável até terminar a execução. Pode ser uma requisição web, um calculo demorado ou configuração pesada no banco de dados.
Elas requerem uma atenção especial pois não é nada recomendável que as executem como parte do processo principal pois isso impede que o estado da aplicação mude, ou seja, não será possível atualizar a tela ou receber nenhum comando de entrada, a aplicação estará travada durante o processo, e no caso do Android, se isso demorar muito (mais que 5 segundos), será exibido um aviso dizendo que o aplicativo travou e o usuário poderá mata-lo.
Fora que isso oferece uma péssima experiencia pro usuário. O que se deve fazer é utilizar uma outra thread para o processamento pesado, deixando assim a thread principal responsável apenas pela operações básica e E/S.