运行另一个相同的流

时间:2014-06-03 08:01:23

标签: android android-asynctask

运行另一个相同的流..

所以你能做到吗?

@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()时发生错误 ..... enter image description here

1 个答案:

答案 0 :(得分:1)

由于错误清楚地表明您正在尝试从另一个线程更新视图,这就是您获得异常CalledFromWrongThreadException的原因。

我猜它是来自getreport("1");,如果你想更新一个视图调用主线程并更新它。

示例:

runOnUiThread(new Runnable() {

            @Override
            public void run() {
                \\this is where you update the view
            }
        });

其中runOnUiThreadActivity中的方法。如果您在片段中,请使用getActivity().runOnUiThread来调用活动实例。