android 异步任务突然停止

android asynctask suddenly stop

我正在使用 jtdc 从 MS SQL 开发应用程序网络。 此应用程序通过 AsyncTask 不断从服务器获取电影文件。 一次下载 2 或 3 部电影。但效果不佳。 例如,当我必须下载 3 个电影文件时,我在每个步骤中都打印了日志,第 1 和 2 个文件下载成功,但最后一个文件下载失败。我检查了所有代码,但我不知道为什么。也不会打印任何日志(包括 try catch)。这是我的代码(在 AsyncTask 中)。

    for (int i = 0; i < movieInfoLists.size(); i++) {
                Statement m_Statement3 = conn.createStatement();
                Log.d("DOWN", "0");
                Log.d("FILEKEY>>", movieInfoLists.get(i).fileKey + "");
                ResultSet rs3 = m_Statement3
                        .executeQuery("SELECT * FROM VIEWDATA WHERE MstKeyId=" + movieInfoLists.get(i).fileKey);
                Log.d("DOWN>>", "1");
                while (rs3.next()) {
                    Log.d("r3동작 >>", "1");
                    try {
                        Log.d("r3동작 >>", "2");


                            InputStream input = new ByteArrayInputStream(rs3.getBytes("Phto"));

                            FileOutputStream output = new FileOutputStream(
                                    new File(Environment.getExternalStorageDirectory().toString() + "/"
                                            + movieInfoLists.get(i).fileName));
                            byte[] buffer = new byte[1024];
                            int n = 0;
                            long total = 0;

                            while (-1 != (n = input.read(buffer))) {
                                total += n;
                                output.write(buffer, 0, n);
                            }
                            output.flush();
                            output.close();
                            input.close();
                            Log.d("r3동작 >>", "3");

                    } catch (IOException e) {
                        Log.d("file error 동작 >>", "M1Renewal L.982 "+calCurTime());
                        appendLog("file down drror ioEx" + "> M1Renewal 1089 L." + "TIME : " + calCurTime());
                        movieInfoLists.get(i).fileName = defaultMovieListInfo.get(0).fileName;
                        movieInfoLists.get(i).fileLocalPath = defaultMovieListInfo.get(0).fileLocalPath;
                        e.printStackTrace();
                    }catch(Exception e){
                        e.printStackTrace();
                    }

                    Log.d("r3동작 >>", "4");
                    Log.d("DOWN", "다운완료>>>" + movieInfoLists.get(i).fileName);

                }
                rs3.close();
                m_Statement3.close();
            }

这是我的日志。接下来没有更多的日志。并且不执行线程。

test.lee D/사이즈>>>: 3

测试。leeD/FILEKEY>>: 55

test.lee D/DOWN>>: 1

test.lee D/r3동작>>: 1

test.lee D/r3동작>>: 2

test.lee D/r3동작>>: 3

test.lee D/r3동작>>: 4

test.lee D/DOWN: 다운완료>>>a.mp4

test.lee D/FILEKEY>>: 58

test.lee D/DOWN>>: 1

test.lee D/r3동작>>: 1

test.lee D/r3동작>>: 2

test.lee D/r3동작>>: 3

test.lee D/r3동작>>: 4

test.lee D/DOWN: 다운완료>>>b.mp4

test.lee D/FILEKEY>>: 66

test.leetest.lee D/DOWN>>: 1

我猜是rs3(ResultSet)有问题。我为此建立了一个解决方案,但我没有找到。我必须做什么?

"movieInfoLists.get(2).fileKey" 的值是否正确?似乎 rs3.next() returns false.

使用Log打印movieInfoLists.get(2).fileKey,和rs3.