创建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();
本文解释了在Android应用中,为何在子线程中显示Toast之前需要手动初始化Looper对象,并提供了相应的代码示例。重点在于避免出现运行时异常,并确保UI操作在主线程或正确初始化的线程中执行。
297

被折叠的 条评论
为什么被折叠?



