Есть ли недостатки использования статического класса с несколькими статическими AsyncTasks? - PullRequest
0 голосов
/ 24 июня 2018

Я создал статический класс (NetworkUtils.java) с несколькими статическими AsyncTasks, каждый из которых отправлял некоторые данные на сервер и получал ответ.

Он отлично работает (в тестовой среде) и сделал код очень чистым в Деятельностях:

NetworkUtils.SomeNetworkingTaskCallbackInterface callbacks = 
        new NetworkUtils.SomeNetworkingTaskCallbackInterface() {
    @Override
    public void onFinished(String result) {

    }

    @Override
    public void onFailed() {

    }
};

NetworkUtils.SomeNetworkingTask task = new NetworkUtils.SomeNetworkingTask(callbacks);
task.execute();

Теперь я провожу небольшое дополнительное исследование, если что-то не так сэтот подход.Я видел много вариантов использования вложенных статических AsyncTasks, но мне нужно, чтобы они были полностью разделены и были модульными, поэтому я поместил их в отдельный статический класс.Я не могу думать ни о каком недостатке.Может кто-нибудь более опытный взвесить?

1 Ответ

0 голосов
/ 24 июня 2018

Единственные недостатки, о которых я могу думать, это то, что у вас не будет доступа к нестатическим членам родительского класса.Например, если у вашего статического объекта Async Task есть родительский класс Activity, вы не сможете вызывать методы, требующие context.Это означает, что вы не сможете запускать службы, действия или трансляции событий с Async Task.

Однако вы можете просто передать объект контекста статическому классу, чтобы решить это.Но что происходит, когда ваша Async Task занимает много времени, и ваша активность разрушается до того, как она вызывается onFinish?Вы получаете сообщение об ошибке, поскольку ваш объект контекста получен из уничтоженной операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...