Android Java AsyncTask выполняется дважды после перезапуска активности - PullRequest
0 голосов
/ 27 января 2020

Я использую некоторые AsyncTasks в фоновом режиме для целей моего собственного Native Android Java приложения, однако, когда я нажимаю кнопку «Применить изменения и перезапустить активность», после перезапуска действия AsyncTasks выполняется дважды. это действительно странно. потому что у меня есть некоторые цели мониторинга с AsyncTasks, поэтому я использовал new MyAsyncTask.Execute() для выполнения класса в обработчике до 1 минуты. если приложение работает нормально, это очень круто. но когда я перезагружался упомянутой кнопкой в ​​Android студии, я сталкивался с проблемой. с этой проблемой, я в беде, что некоторые журналы дублируются.

Ответы [ 3 ]

0 голосов
/ 27 января 2020

Если вы поделитесь своим кодом, его будет легко понять, но, похоже, у вас есть проблема только с жизненным циклом приложения, см. Документацию: Понимание жизненного цикла действия

0 голосов
/ 07 февраля 2020

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

@Override
    protected void onDestroy() {
        pusher.disconnect();
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(1);
        super.onDestroy();
    }
0 голосов
/ 27 января 2020

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

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