Can't create handler inside thread that has not called Looper.prepare()の対応はとりあえず下記でOKそう。
public void run() { try { // 時間のかかる処理をここに記述。 } catch (Exception e) { Looper.prepare(); Toast.makeText(this, getString(R.string.exception_occur), Toast.LENGTH_LONG).show(); Looper.loop(); } }