【问题标题】:Warning "Application is not responding" during FTP UploadFTP 上传期间警告“应用程序没有响应”
【发布时间】:2014-03-21 21:40:07
【问题描述】:

我今天使用本教程编写了我的第一个应用程序http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/

此外,我还添加了从 SD 卡到我自己的 FTP 的文件的 FTP 上传,它也运行良好。有一个例外。我收到(翻译的)错误“应用程序没有响应,等待或关闭”(https://imgur.com/C2pLaiO),因为我上传的文件大约 30MB,因此需要一些时间。

对于 ftp 上传,我使用了来自 sauronsoftware.it/projects/ftp4j/ 的库 ftp4j-1.7.2.jar

我需要怎么做才能消除此消息?

【问题讨论】:

    标签: android ftp


    【解决方案1】:

    听起来您正在UI Thread 上进行此文件传输,并且由于这需要一些时间,这会导致您的应用程序一直拖到完成。您可以将该代码放在AsyncTask 中。这将在几个方面有所帮助

    1. 它可以在背景Thread 上进行文件传输,同时允许不举起你的UI 并给你这个丑陋的消息
    2. AsyncTask 具有内置方法,可让您在 ui 上执行操作,例如显示 ProgressDialog/ProgressBar

    您可以将您的“繁重”代码放入doInBackground(),并将您的ui 内容(显示/关闭进度)放入onPreExecute()/onPostExecute(),您可以通过调用@ 来执行诸如更新ProgressBar 之类的操作doInBackground() 中的 987654334@ 将调用 onProgressUpdate()

    See this answer for an example of AsyncTask

    AsyncTask Docs

    【讨论】:

      【解决方案2】:

      我建议您使用AsyncTask 上传文件,因为它不会在上传时停止 UI 运行(因此,不会显示“应用程序未响应”)。

      【讨论】:

        最近更新 更多