我有一个AsyncTask获取一些数据,然后用这个新数据更新UI.它已经工作好几个月,但我最近添加了一个功能,当有新数据时显示通知.现在,当我的应用程序通过通知启动时,有时我会得到此异常并且onPostExecute不会被调用.
这是应用程序启动时发生的情况:
1)展开UI并查找视图
2)取消AlarmManager检查新数据并重置警报的警报(通过).(这样,如果用户禁用警报,则在下次重新启动之前将其取消.)
3)开始AsyncTask.如果应用程序是从通知启动的,请传入一些数据,然后取消通知.
我被困在导致这个异常的原因上.似乎异常来自AsyncTask代码,所以我不确定如何解决它.
谢谢!
这是一个例外:
I/My App( 501): doInBackground exiting
W/MessageQueue( 501): Handler{442ba140} sending message to a Handler on a dead thread
W/MessageQueue( 501): java.lang.RuntimeException: Handler{442ba140} sending message to a Handler on a dead thread
W/MessageQueue( 501): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:179)
W/MessageQueue( 501): at android.os.Handler.sendMessageAtTime(Handler.java:457)
W/MessageQueue( 501): at android.os.Handler.sendMessageDelayed(Handler.java:430)
W/MessageQueue( 501): at android.os.Handler.sendMessage(Handler.java:367)
W/MessageQueue( 501): at android.os.Message.sendToTarget(Message.java:348)
W/MessageQueue( 501): at android.os.AsyncTask$3.done(AsyncTask.java:214)
W/MessageQueue( 501): at java.util.concurrent.FutureTask$Sync.innerSet(FutureTask.java:252)
W/MessageQueue( 501): at java.util.concurrent.FutureTask.set(FutureTask.java:112) …Run Code Online (Sandbox Code Playgroud)