現時点では、フラグメントの停止メソッドで mRequestQueue.cancelAll(getActivity()) を使用していますが、電話を横向きから縦向きに移動すると、リクエストで作成されたデータはまだ返されますが、ホルダーが原因でクラッシュが発生するようですデータはもう存在しません。それを正しく行う方法のサンプルコードはありますか?
31536 次
9 に答える
4
この回答が遅れていることは知っていますが、他の誰かがこの問題を抱えている場合:
私の実装では、リクエストがキューに追加された時点でタグが設定 (および上書き) されていました。
そのため、タグでリクエストをキャンセルしていたにもかかわらず、リクエスト キューのタグは (以前に上書きされたため) 同じではなく、キャンセルされませんでした。
実行中のリクエストをログに記録し、タグを出力すると、解決策にたどり着きました。
mRequestQueue.cancelAll(new RequestQueue.RequestFilter() {
@Override
public boolean apply(Request<?> request) {
Log.d("DEBUG","request running: "+request.getTag().toString());
return true;
}
});
于 2013-11-22T12:58:25.593 に答える
1
フラグメントからキューにリクエストを追加する場合は、次のようにキャンセルする必要がありますmRequestQueue.cancelAll(this)
。うまくいかなかった場合は申し訳ありません-私はこのソリューションをテストしていません。しかし、これがあなたの助けになることを願っています。
于 2013-06-06T06:38:31.643 に答える
0
リクエストのタグをアクティビティに設定していますか? これが、提供しているコードが機能する唯一の方法です。cancelAll メソッドは、指定したタグのタグを持つすべてのリクエストを検索し、それらをキャンセルします。
于 2013-10-03T18:45:23.590 に答える