У меня есть приложение для Android с соответствующим веб-сайтом. У меня есть функция LoginActivity, которая принимает учетные данные пользователя, использует подкласс AsyncTask для проверки их на веб-сайте и, если правильно, хранит их в SharedPreferences для будущего использования.Безопасное обновление сведений о деятельности от AsyncTask
У меня есть функция MainActivity, которая отображает детали пользователя на основе этих значений SharedPreferences.
Итак, когда AsyncTask завершается, мне нужно обновить данные пользователя, отображаемые в основном действии.
Я мог бы сделать это, передав ссылку на MainActivity к LoginActivity при вызове его, а затем в AsyncTask onPostExecute, вызвать функцию в этом случае MainActivity обновления отображаемых данных. Это, кажется, общий способ сделать это, но я не уверен, что это абсолютно безопасно. Это маловероятно, но что произойдет, если MainActivity будет завершена ОС, пока AsyncTask все еще обрабатывает?
В качестве альтернативы, в этом случае я мог бы просто закончить() MainActivity при запуске LoginActivity и запустить новую MainActivity из onPostExecute, которая отображает обновленные данные. Но у меня могут быть другие действия, в которых происходит взаимодействие с пользователем, в то время как фоновый AsyncTask обновляет данные - в этом случае второй метод не будет работать.
Просто интересно, есть ли лучший способ сделать это, или это первый способ достаточно безопасный?
1. Чтобы завершить работу MainActivity во время обработки AsyncTask, необходимо, чтобы MainActivity «отменил регистрацию» с помощью AsyncTask, а затем, прежде чем задача перейдет к основному действию, она должна проверить, незарегистрированный ' – ByteMe