HTTP против FTP загрузки

Я хочу остановить службу, когда пользователь удаляет приложение из недавнего списка.

Да, вы можете сделать это, используя флаг stopWithTask в качестве true для службы в файле манифеста.

Пример:

<service
    android:enabled="true"
    android:name=".MyService"
    android:exported="false"
    android:stopWithTask="true" />

ИЛИ

Если вам нужно удалить приложение из недавнего списка и сделать что-то перед остановкой службы, вы можете использовать это:

<service
    android:enabled="true"
    android:name=".MyService"
    android:exported="false"
    android:stopWithTask="false" />

Таким образом будет вызван метод вашей службы onTaskRemoved. ( Помните , он не будет вызываться, если вы установите stopWithTask на true).

public class MyService extends Service {

    @Override
    public void onStartService() {
        //your code
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        System.out.println("onTaskRemoved called");
        super.onTaskRemoved(rootIntent);
        //do something you want
        //stop service
        this.stopSelf();
    }
}

Надеюсь, что это поможет.

13
задан Bill Karwin 20 August 2009 в 07:50
поделиться

7 ответов

HTTP определенно снижает нагрузку на ваших клиентов. Во многих местах есть прокси или брандмауэры, которые блокируют весь FTP-трафик (входящий или исходящий).

15
ответ дан 1 December 2019 в 20:12
поделиться

Большим преимуществом HTTP является то, что он проходит через брандмауэры и его очень легко зашифровать - просто используйте HTTPS на порту 443 вместо HTTP на порту 80. Оба проходят через прокси и брандмауэры. И в наши дни довольно легко загрузить файлы размером 20 МБ через HTTP / HTTPS с помощью POST.

Проблема с HTTP в том, что его нельзя перезапустить для загрузки. Если вы получили 80% отправленного файла, а затем произошел сбой, вам нужно будет перезапустить сначала. Вот почему поставщики все чаще используют загрузчики и загрузчики на основе flash, java или javascript. Эти системы могут видеть, какая часть файла была отправлена, отправлять MAC, чтобы убедиться, что он прибыл правильно, и повторно отправлять недостающие части.

MAC важнее, чем вы думаете. Контрольные суммы TCP всего 32 бита, так что вероятность того, что ошибка не будет обнаружена, составляет 1 из 4 миллиардов. Это потенциально часто случается с сегодняшним Интернетом.

12
ответ дан 1 December 2019 в 20:12
поделиться

Я определенно выбираю подход HTTP. как и остальные люди здесь. Причина этого в том, что вы сказали о том, что размер большинства файлов составляет от одного до трех мегабайт.

Проблема заключается в «остальных», поэтому:

Рассматривали ли вы возможность пользователям отправлять файлы большего размера через e -mail скрипту deamon, который получает электронные письма и загружает их в учетную запись, связанную с отправителем? Или есть решение в виде флеш-загрузчика в стиле facebook.

0
ответ дан 1 December 2019 в 20:12
поделиться

FTP будет использовать меньшую полосу пропускания, чем HTTP, так как последний должен будет кодировать (base64) двоичное содержимое в обычный текст, таким образом увеличивая общий размер передачи. (на 1/3).

Однако потребление полосы пропускания не обязательно может быть серьезной проблемой по сравнению с другими факторами, такими как удобство использования и безопасность, в которых HTTP преобладает.

-6
ответ дан 1 December 2019 в 20:12
поделиться

Достаточно ли надежна загрузка HTTP для такие большие файлы

Одним из основных преимуществ FTP является возможность возобновления прерванной загрузки. Большинство FTP-серверов и клиентов поддерживают это, хотя не всегда активируются. В то время как с HTTP теоретически возможно использование специальных заголовков, но обычный клиент (то есть браузер) не будет поддерживать его.

Еще одним преимуществом будет массовая загрузка: очень просто в FTP, но не в HTTP.

Но почему бы и нет. просто предложить оба варианта? HTTP для тех, кто находится за прокси или не хочет / не может использовать FTP-клиент, и FTP для людей, которым приходится загружать много или большие загрузки через ненадежные соединения.

7
ответ дан 1 December 2019 в 20:12
поделиться

Я не хочу быть саркастичным, но протокол передачи файлов должен быть более надежным при передаче файлов :)

3
ответ дан 1 December 2019 в 20:12
поделиться

Доступность / использование ресурсов является более важной проблемой, чем надежность или скорость. Каждая загрузка потребляет ресурсы - поток / память / и т. Д. - на вашем веб-сервере на время загрузки. Если трафик загрузки контента значительный для больших файлов, было бы лучше использовать FTP просто для того, чтобы освободить HTTP-сервер, чтобы он лучше реагировал на запросы страниц.

0
ответ дан 1 December 2019 в 20:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: