android asynctask突然停止了

时间:2015-10-18 22:56:21

标签: android sql-server android-asynctask jtds

我正在使用jtdc从MS SQL开发应用程序网络。 这个应用程序通过AsyncTask不断从服务器获取电影文件。 在一次,下载2或3部电影。但它运作不佳。 例如,当我必须下载3个电影文件时,我打印了每个步骤的日志,1和2个文件下载得很好但是最后一个文件没有。我检查了所有代码,但我不知道为什么。此外,还没有打印任何日志(包括尝试捕获)。这是我的代码(在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 /사이즈&gt;&gt;&gt;:3

test.leeD / FILEKEY&gt;&gt;:55

test.lee D / DOWN&gt;&gt;:1

test.lee D / r3동작&gt;&gt;:1

test.lee D / r3동작&gt;&gt;:2

test.lee D / r3동작&gt;&gt;:3

test.lee D / r3동작&gt;&gt;:4

test.lee D / DOWN:다운완료&gt;&gt;&gt; a.mp4

test.lee D / FILEKEY&gt;&gt;:58

test.lee D / DOWN&gt;&gt;:1

test.lee D / r3동작&gt;&gt;:1

test.lee D / r3동작&gt;&gt;:2

test.lee D / r3동작&gt;&gt;:3

test.lee D / r3동작&gt;&gt;:4

test.lee D / DOWN:다운완료&gt;&gt;&gt; b.mp4

test.lee D / FILEKEY&gt;&gt;:66

test.leetest.lee D / DOWN&gt;&gt;:1

我猜到rs3(ResultSet)是个问题。我为此创立了一个解决方案,但我找不到。我该怎么办?

1 个答案:

答案 0 :(得分:0)

&#34; movieInfoLists.get(2).fileKey&#34;有正确的价值吗?似乎rs3.next()返回false。

使用日志打印movieInfoLists.get(2).fileKey和rs3。