创建Handler对象必须先初始化一个Looper , 否则会出现如下错误:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Activity在被创建的时候,框架会帮我们初始化一个Looper对象,因此在主线程中,我们不必去调用Looper.prepare()去初始化Looper对象。
在子线程里面显示一个Toast,Toast的show操作,需要通过windowmanager的 handler来处理,因此需要手动初始化Looper对象:
Looper.prepare();
Toast.makeText(getApplicationContext(), "备份完成", 1).show();
Looper.loop();