Aynı problem üzerinde durdum ve karar verdiğim "çözüm". Bu "doğru" çözümü olarak adlandırdığım şey değil ama mevcut API ile yönetebileceğinize inanıyorum.
@Override
public Bundle getAccountRemovalAllowed(
AccountAuthenticatorResponse response, Account account)
throws NetworkErrorException {
Bundle result = super.getAccountRemovalAllowed(response, account);
if (result != null && result.containsKey(AccountManager.KEY_BOOLEAN_RESULT)
&& !result.containsKey(AccountManager.KEY_INTENT)) {
final boolean removalAllowed = result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT);
if (removalAllowed) {
// Do my removal stuff here
}
}
return result;
}
Eğer getAccountRemovalAllowed
dönmek SONRA kaldırma başarısız olabilir küçücük bir şans var ama (IMHO) ihmal edilebilir olduğunu şu şekildedir: AbstractAccountAuthenticator
sınıfının benim uygulamasında
, ben
getAccountRemovalAllowed
fonksiyonunu değiştirileceğini ettik. MisterSquonk olarak
sen (ACCOUNTS_CHANGED_INTENT
) dinlemek olabilir ama, bir hesap değiştiğinde ne yazık ki, yayın, ve bir hesap değil sadece zaman silinmiş bir Niyet de öne sürdü.
Bunun neden SDK'nın bir parçası olmadığını anlamıyorum, ancak ikimiz de açık bir şeyi kaçırdık! Şimdilik, hesabımdaki silme işleminde bazı veritabanı tablolarını silmem gerektiğinden bu yaklaşıma bağlı kalıyorum.
Umarım bu yardımcı olur.
Herhangi bir kullanım olup olmadığından emin değil, ACTION_UID_REMOVED yayın eylemine baktınız mı? – Squonk