0
以下は、お気に入りのマーク/マークされた記事のデータベースステータスを更新するasynctaskです。更新後、私はアクションバーアイコンを無効にして、選択されていないブックマークから選択されたブックマークに変更します。ビューのフラグメントを呼び出すメソッドのonPostexecuteは安全ですか?
それはonPostExecuteにビューのように宣言されたフィールド上の任意のメソッドを呼び出すために、安全なメモリリークですか?ビューのWeakReferenceを作成する必要はありますか?
フラグメントが追加されない極端な状況を考慮します。 AsynctaskはフラグメントのonStart()メソッドで実行されます。
new PinAsyncTask(articleId) {
@Override
protected void onPostExecute(Boolean pinned) {
if (isAdded()) {
supportActionBar.invalidateOptionsMenu();
}
}
}.execute(mArticleInfoCv);
このブックマークはメニュー項目ですか? –
はい、アクションバーに上記のようなアイコン付きのメニュー項目があります – deadfish
私はあなたが正しく実装されていると思います。 isAdded()をチェックしたときにweakReferenceが必要ないか、メモリリークは発生しません。 (y) –