Как долго я могу удерживать ContentResolver в AsyncTask? - PullRequest
5 голосов
/ 15 апреля 2011

Я пытаюсь написать Activity, которая порождает AsyncTask для длительной операции и периодически публикует обновления статуса обратно в Activity.Я хотел бы убедиться, что AsyncTask правильно выдерживает поворот экрана или другие условия разрушения, такие как OOM.

Я читал эту ветку в списке разработчиков Android , который, в свою очередь, привел меня к этой реализации , что почти то, что мне нужно.Однако последний шаг моей AsyncTask - удалить некоторые данные из распознавателя контента.Чрезвычайно важно, чтобы этот шаг не пропускался, потому что данные являются конфиденциальными и не должны оставаться на телефоне в нормальных условиях.Однако ContentResolvers происходят из контекста, в данном случае Activity, и с этой схемой Activity может быть нулевым к моменту, когда AsyncTask готов выполнить удаление.

Безопасно ли получать ContentResolver из Activityна AsyncTask строительство и держаться за это время жизни деятельности?Если нет, что я могу сделать, чтобы разобраться с этим делом?

1 Ответ

2 голосов
/ 15 апреля 2011

Почему вы не получаете ContentResolver из приложения? Вам необходимо понимать различные концепции, лежащие в основе действия и контекста - просто потому, что действие является контекстом, не означает, что вам нужно использовать действие для всех задач, которые оно выполняет. Используйте активность только для пользовательского интерфейса

...