运行另一个相同的流..
所以你能做到吗?
@Override
protected Void doInBackground(Void... params) {
if (isCancelled()) return null;
getSignIns();
try {
androidHttpTransport.call("http://tempuri.org/Sig", envelope);
SoapObject response = (SoapObject) envelope.getResponse();
sessionId = response.getProperty("sessionId").toString();
androidHttpTransport=null;
request=null;
response=null;
System.gc();
getreport("1");
Log.d("PGGURU", "*:sesid " + sessionId);
} catch (Exception e) {
e.printStackTrace();
Log.d("PGGURU", "- error sess "+e.toString());
dreplumclas drepluAsync = new dreplumclas(context,activity);
drepluAsync.execute();
}
}
return null;
}
有时会出现此错误 06-03 11:46:02.527:E / AndroidRuntime(9693):java.lang.RuntimeException:执行doInBackground()时发生错误 .....
答案 0 :(得分:1)
由于错误清楚地表明您正在尝试从另一个线程更新视图,这就是您获得异常CalledFromWrongThreadException
的原因。
我猜它是来自getreport("1");
,如果你想更新一个视图调用主线程并更新它。
示例:强>
runOnUiThread(new Runnable() {
@Override
public void run() {
\\this is where you update the view
}
});
其中runOnUiThread
是Activity
中的方法。如果您在片段中,请使用getActivity().runOnUiThread
来调用活动实例。