Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 任务突然停止_Android_Sql Server_Android Asynctask_Jtds - Fatal编程技术网

Android 任务突然停止

Android 任务突然停止,android,sql-server,android-asynctask,jtds,Android,Sql Server,Android Asynctask,Jtds,我正在使用jtdc从MS SQL开发应用程序网络。 此应用程序正在通过AsyncTask连续从服务器获取电影文件。 一次可以下载2到3部电影。但它并没有起到很好的作用。 例如,当我必须下载3个电影文件时,我将日志打印到每个步骤,1和2个文件下载良好,但最后一个文件没有。我检查了所有代码,但我不知道为什么。此外,未打印任何日志(包括try-catch)。这是我的代码(在AsyncTask中) for(int i=0;i>”,movieinfolist.get(i).FILEKEY+“”); 结果集

我正在使用jtdc从MS SQL开发应用程序网络。 此应用程序正在通过AsyncTask连续从服务器获取电影文件。 一次可以下载2到3部电影。但它并没有起到很好的作用。 例如,当我必须下载3个电影文件时,我将日志打印到每个步骤,1和2个文件下载良好,但最后一个文件没有。我检查了所有代码,但我不知道为什么。此外,未打印任何日志(包括try-catch)。这是我的代码(在AsyncTask中)

for(int i=0;i>”,movieinfolist.get(i).FILEKEY+“”);
结果集rs3=m_语句3
.executeQuery(“从视图数据中选择*,其中MstKeyId=“+movieInfoLists.get(i).fileKey”);
Log.d(“向下>>”,“1”);
while(rs3.next()){
Log.d(“r3동작 >>", "1");
试一试{
Log.d(“r3동작 >>", "2");
InputStream输入=新的ByteArrayInputStream(rs3.getBytes(“Phto”);
FileOutputStream输出=新FileOutputStream(
新文件(Environment.getExternalStorageDirectory().toString()+“/”
+movieInfoLists.get(i.fileName));
字节[]缓冲区=新字节[1024];
int n=0;
长总计=0;
而(-1!=(n=input.read(buffer))){
总+=n;
输出写入(缓冲区,0,n);
}
output.flush();
output.close();
input.close();
Log.d(“r3동작 >>", "3");
}捕获(IOE异常){
Log.d(“文件错误동작 >>", "m1.982“+计算时间());
appendLog(“文件下载drror ioEx”+”>M11089 L.“+”时间:“+calCurTime());
movieInfoLists.get(i).fileName=defaultMovieListInfo.get(0).fileName;
movieInfoLists.get(i).fileLocalPath=defaultMovieListInfo.get(0).fileLocalPath;
e、 printStackTrace();
}捕获(例外e){
e、 printStackTrace();
}
Log.d(“r3동작 >>", "4");
Log.d(“向下”다운완료>>>" + movieInfoLists.get(i).fileName);
}
rs3.close();
m_语句3.close();
}
这是我的日志。下一个没有更多日志。并且不执行线程

李博士/사이즈>>>: 三,

test.leeD/FILEKEY>>:55

test.lee D/DOWN>>:1

测试D/r3동작>>:1

测试D/r3동작>>:2

测试D/r3동작>>:3

测试D/r3동작>>:4

测试点D/DOWN:다운완료>>>a、 mp4

test.lee D/FILEKEY>>:58

test.lee D/DOWN>>:1

测试D/r3동작>>:1

测试D/r3동작>>:2

测试D/r3동작>>:3

测试D/r3동작>>:4

测试点D/DOWN:다운완료>>>b、 mp4

test.lee D/FILEKEY>>:66

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

我猜rs3(ResultSet)是个问题。我找到了一个解决方案,但没有找到。我该怎么办?

MovieInfoList.get(2.fileKey)的值是否正确?rs3.next()似乎返回false


使用日志打印电影信息列表。get(2)、fileKey和rs3。

是否要向全世界开放sql server?通过web应用程序获取数据不是更好吗?谢谢您的回答。
    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();
            }