Android 如果不使用UI线程,则无法将图像上载到服务器

Android 如果不使用UI线程,则无法将图像上载到服务器,android,Android,嘿,我尝试了上面的代码将图像上传到服务器上。如果我使用代码中提到的选项2,它运行良好。但是如果我把代码放在选项2上,它会给我这个错误 public void upload_prescription() { dialog = ProgressDialog.show(MainActivity.this, "","Uploading file...", true); new Thread(new Runnable() { public void run

嘿,我尝试了上面的代码将图像上传到服务器上。如果我使用代码中提到的选项2,它运行良好。但是如果我把代码放在选项2上,它会给我这个错误

     public void upload_prescription()
{
    dialog = ProgressDialog.show(MainActivity.this, "","Uploading file...", true);
    new Thread(new Runnable()
    {
        public void run()
        {
            runOnUiThread(new Runnable()
            {
                public void run()
                {
                    //     option1      upload_image.uploadFile(uploadFilePath);
                }
            }
            );
            //option2          upload_image.uploadFile(uploadFilePath);
            deleteImageFromGallery(delete_image_id + "");
        }
    }
    ).start();
}

我认为选项2更好,因为它提供了一个单独的线程来完成任务,尽管它不能正常工作

,但它不能工作,因为您(如错误所示)没有生成新线程来执行网络操作,而是在主线程上执行网络调用。您的选项2看起来就像普通的方法调用。我看这里没有生成线程。你说的普通方法是什么意思。你只是在UI线程上调用一个方法。您没有生成一个线程来执行此工作。您认为我的选项1和选项2在ui线程上运行调用runOnUiThread会强制您的操作在主线程上运行吗。你不能用它来执行上传。如果删除runOnUiThread部分,则上载将在不同的线程上运行。
              android.os.NetworkOnMainThreadException.