Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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/3/android/180.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
Java 使用StrictMode.ThreadPolicy将图像上载到服务器时未显示ProgressDialog_Java_Android_Progressdialog - Fatal编程技术网

Java 使用StrictMode.ThreadPolicy将图像上载到服务器时未显示ProgressDialog

Java 使用StrictMode.ThreadPolicy将图像上载到服务器时未显示ProgressDialog,java,android,progressdialog,Java,Android,Progressdialog,ProgressDialog仅当我发送文本时才会显示,但当我发送图像时,它会给我一个错误,告诉我有很多活动正在运行,或者应用程序无法处理所有活动,解决方案是在调用这些任务之前添加StrictMode.ThreadPolicy,但问题是ProgressDialog不再显示,这对于告诉用户正在进行的过程很重要 我相信是StrictMode.ThreadPolicy导致了ProgressDialog的消失。我没有使用Asynctask,这就是为什么我还没有在互联网上找到解决方案的原因,因为大多数人都在

ProgressDialog
仅当我发送文本时才会显示,但当我发送图像时,它会给我一个错误,告诉我有很多活动正在运行,或者应用程序无法处理所有活动,解决方案是在调用这些任务之前添加
StrictMode.ThreadPolicy
,但问题是
ProgressDialog
不再显示,这对于告诉用户正在进行的过程很重要

我相信是
StrictMode.ThreadPolicy
导致了
ProgressDialog
的消失。我没有使用
Asynctask
,这就是为什么我还没有在互联网上找到解决方案的原因,因为大多数人都在使用它。我还计划使用
Asynctask
,但我的老板没有批准,他担心这会破坏应用程序

{

{

private void uploadMedia(字符串路径){
字符串ImageName=“image\u name”;
字符串ImagePath=“image\u path”;
试一试{
字符串charset=“UTF-8”;
文件上传文件1=新文件(路径);
字符串requestURL=”http://myurl";
multipartity multipart=新的multipartity(requestURL,
字符集);
多部分addFormField(ImageName,“iName”);
多部分addFormField(ImagePath,“iPath”);
multipart.addFilePart(“uploadedfile”,uploadFile1);
列表响应=multipart.finish();
Log.v(“rht”,“服务器回复:”);
for(字符串行:响应){
对数v(“rht”,“行:”+行);
如果(行==“真”| |行==“已保存”){
progressDialog.disclose();
}
}
//Toast.makeText(this,“+response,Toast.LENGTH_SHORT).show();
完成();
}捕获(例外e){
e、 printStackTrace();
}
}

}

如果您在UI线程中访问网络,则会显示错误。您无法在主线程中执行网络操作。最好使用工作线程或ayntask。但如果您愿意接受后果,并且必须在主线程上执行网络操作,则可以覆盖默认行为:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy); 

你能发布代码吗?我刚刚发布了我的代码。谢谢。这是否意味着使用StrictMode.ThreadPolicy将取消所有UI操作?不会。这行允许你在UI线程中进行网络调用,从而完成你的工作。但是在UI线程中进行网络调用并不好,可能会导致问题。因为我的老板看到了你的评论,他现在就让我这样做了做Asynctask很好。我只是假设在不使用Asynctask的情况下有一些机会或选项来执行任务。我真的不希望对我的问题有负面影响。无论如何,谢谢你创建一个asyntask或一个简单的线程处理程序也会起作用。无论如何,如果我帮你投票支持这个答案,我就输了3分投票..我的问题到底出了什么问题?我只是想知道,以便下次我能纠正它。。
    private void uploadMedia(String path) {
    String ImageName = "image_name";
    String ImagePath = "image_path";

  try {
    String charset = "UTF-8";
    File uploadFile1 = new File(path);
    String requestURL= "http://myurl";
    MultipartUtility multipart = new MultipartUtility(requestURL,   

 charset);
 multipart.addFormField(ImageName, "iName");
 multipart.addFormField(ImagePath, "iPath");
 multipart.addFilePart("uploadedfile", uploadFile1);
 List<String> response = multipart.finish();
  Log.v("rht", "SERVER REPLIED:");
 for (String line : response) {
      Log.v("rht", "Line : "+line);
       if(line=="true"||line=="Saved"){
                progressDialog.dismiss();
       }
   }

       // Toast.makeText(this, ""+response, Toast.LENGTH_SHORT).show();
        finish();
    } catch (Exception e) {
        e.printStackTrace();
    }

}
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);