2

アプリケーション データが設定からリセットされたときに、定期的な同期が引き続きトリガーされることに気付きました。

これを解決しようとして、メソッドに気付きましたAccountManager.removeAccount()が、これが SyncAdapter が定期的に行う同期にどのように影響するかはわかりません。そのドキュメントには、その点については何も言及されていません。そして、私はそれをどこに呼ぶべきかわかりません。

アプリのデータが削除されたときにスケジュールされた定期的な同期操作をキャンセルする方法がない場合は、同期コードにチェックを導入して、これが発生したことを示す明らかな手がかりを見つけることができます。しかし、電話するだけで十分AccountManager.removeAccount()でしょうか? または、これは実行時に何らかの例外を発生させますか (たとえば、同期を実行するコードが実行される場合、アカウントが null になるので、NullPointerException が生成される可能性があります)。

4

2 に答える 2

2

このブロードキャストをサブスクライブして、設定からのデータの消去を検出できます。ただし、これは SyncAdapter が動作しているスレッドとは別のスレッドで処理されることに注意してください。そのため、とにかく同期アダプター コードにいくつかのチェックを導入する必要があります。

あなたの他の問題 - アプリがアンインストールされた後もあなたのアプリアカウントと同期アダプターが保持されている - は本当に奇妙です. AndroidManifest.xml と認証サービスのメタデータを投稿できますか?

于 2014-05-07T07:29:27.307 に答える