Android线程和处理程序NullPointerException
我是Android的初学者。我的处理程序有一个NullPointerExceptionAndroid线程和处理程序NullPointerException,android,multithreading,Android,Multithreading,我是Android的初学者。我的处理程序有一个NullPointerException 我正在线程内调用一个服务,并使用处理程序更新活动a中的UI 我正在使用通知显示另一个活动B 假设当线程在活动A中运行时,我正在单击通知,活动B正在调用,经过一些延迟后,应用程序崩溃,我认为处理程序丢失了活动A的上下文。我想知道如何处理这种情况,假设如果我使用AsyncTask,AsyncTask会处理上下文问题吗?任何人都可以帮我解决这个问题。提前谢谢 活动-A: Thread t = new Threa
- 我正在线程内调用一个服务,并使用处理程序更新活动a中的UI
- 我正在使用通知显示另一个活动B 假设当线程在活动A中运行时,我正在单击通知,活动B正在调用,经过一些延迟后,应用程序崩溃,我认为处理程序丢失了活动A的上下文。我想知道如何处理这种情况,假设如果我使用AsyncTask,AsyncTask会处理上下文问题吗?任何人都可以帮我解决这个问题。提前谢谢
Thread t = new Thread() {
@Override
public void run() {
// call service get response
handler.sendMessage(msg);
}
}
单击通知时,我显示活动B
logcat o/p只是
handler.sendMessage行中的NullPointerException
在处理程序内部,我正在更新活动B的UI。初始化处理程序,并确保消息不为null我将线程转换为AsyncTask,如果在活动A处于暂停状态时AsyncTask正在运行,我将取消AsyncTask,这是问题的临时修复。但是我正在寻找完美的解决方案。你能发布处理程序定义吗?你还没有启动你的线程。logcat中有什么?从这个代码段,没有
logcat
,就不可能跟踪问题。检查你是否启动了线程。消息不是null,但处理程序是,由于处理程序与活动A关联,并且我当前正在显示活动B。异步任务是否会进行修复@Lucian NovacIt可能是一个解决方案,但您必须注意方法、doInBackground上的网络操作和onPostExecute上的ui操作。我可以在doInBackground中更改相同的代码,并在onPostExecute中更改处理程序,但这能解决我的问题吗?我的意思是,如果启动活动B时asyncTask仍在运行,它不应该认为继承选项会帮助您。A exdend C,B exdend C和in C放置处理程序