项目中全局搜索报错的数值,比如我们项目中产生的异常是,unhandled message 1000
那么搜索1000,找到跟Handler处理相关的逻辑
看看是否在Handler.handlerMessage中,有没有做异步操作(AsyncTask、子线程等等),并且在异步操作中修改了handlerMessage参数Message的msg.what值为1000
如果有的话,改成获取一个新的消息、或者new消息,再去修改what
下面是分析错误出现的情况
这个一个WebView内部的Handler抛出的异常
应用启动完成后,我们用Handler发送了一个message1表示初始化完成,执行Handler.handlerMessage,handlerMessage中有一个AsyncTask对象,它的onPostExecute持有message1对象,这时候handlerMessage方法走完,message1对象已经被Looper.loop()重置what、obj等属性
此时界面加载了WebView,message1对象被WebView的Handler使用赋值自己的属性what、obj等,发送到消息队列,
AsyncTask异步执行完以后,改变了message1对象的what,这时候Looper.loop()把message1派给WebView的Handler处理,handleMessage中发现没有对应的what,抛出异常。