【问题标题】:downloading terminates when App goes to background当应用程序进入后台时下载终止
【发布时间】:2013-05-02 15:42:15
【问题描述】:

我正在开发一个使用 phonegap 的应用程序。

当应用程序第一次启动时,我正在从服务器下载数据。 该下载过程正在 AsyncTask 中执行,并且在其中的 onPostExecute() 中,我正在加载 url。

出现的问题是,当我的下载过程正在执行时,并且应用程序以某种方式进入后台,下载被终止,不幸的是,这绝对不是必需的。

为了克服这个麻烦;我想,使用服务是不错的选择之一。但是,在这种情况下,另一个问题出现了,我怎么可能在服务中加载 url。

否则,还有什么办法?

请建议我摆脱这个麻烦的可能方法,我目前正面临。

【问题讨论】:

    标签: android background android-asynctask android-service download


    【解决方案1】:

    使用类似的方法下载数据。这可能会有所帮助。

         public void downloadUsingGET(String apkurl, String fileName) {
    
            try {
                String PATH = Environment.getExternalStorageDirectory()+"/Android/data/"+getPackageName()+"/files/";
                URL url = new URL(apkurl);
                HttpURLConnection c = (HttpURLConnection) url.openConnection();
                c.setRequestMethod("GET");
                c.connect();
                File file = new File(PATH);
                file.mkdirs();
                File outputFile = new File(file, fileName);
                FileOutputStream fos = new FileOutputStream(outputFile);
    
                InputStream is = c.getInputStream();
    
                byte[] buffer = new byte[1024];
                int len1 = 0;
                while ((len1 = is.read(buffer)) != -1) {
                    fos.write(buffer, 0, len1);
                }
                fos.close();
                is.close();
    
            } catch (IOException e) {
    
            }
    
    
    
        }
    

    【讨论】:

      【解决方案2】:

      如果您使用服务,则可以通过意图(您启动服务的意图)传递字符串。

      【讨论】:

      • 但是,同时,在下载的时候,我想显示progressDialog。使用服务可以实现吗?
      • 啊,是的。在这种情况下,您应该使用广播。 developer.android.com/reference/android/content/…
      • 您能否推荐任何有用的示例/链接来代表您的想法?
      猜你喜欢
      • 2020-06-21
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多