执行以下代码时,用户的手机出现错误,我正在检查用户当前是否正在通话,然后再运行AsyncTask
Web 服务调用。我这样做的原因是因为有些人在通话时失去了互联网连接,所以我每 5 秒检查一次,看看他们是否在通话。如果不是,则调用 AsyncTask
do{
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
@Override
public void run() {
onCall = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE))
.getCallState() != TelephonyManager.CALL_STATE_IDLE;
if(!onCall){
new CallRegWS().execute();
}
}
},5000);
}while(onCall);
我没有完整的堆栈跟踪,只有这向我显示了错误
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
显然不是太有帮助,但这就是我所要做的。他们不断收到该错误,因此它必须在我创建处理程序时发生。
所有这一切都是在main thread
所以我不知道问题是什么,关于如何解决这个问题的任何见解?
更新 这是从服务调用的,并且该方法位于单独的类中