私はカスタムビューを構築し、そのコンストラクタで、私はImageViewのgetHandler()。カスタムビューでremoveCallbacksAndMessages(ヌル)のdoesntの仕事
postDelayed(new Runnable() {
@Override
public void run() {
Glide.with(getContext())
.load("url").asBitmap()
.into(new SimpleTarget<Bitmap>(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Drawable drawable = new BitmapDrawable(resource);
setBackground(drawable);
}
});
}
},5000);
、ユーザーが戻ってクリックした場合のを更新するためにグライドを使用するpostDelay()
を行いますアクティビティが破壊されたので、グライドがアプリをクラッシュさせます(グライドはアクティビティが有効かどうかを確認します) ハンドラ内のすべてのメッセージを消去します。 onDetachedFromWindow()
方法で
ので:
@Override
protected void onDetachedFromWindow() {
getHandler().removeCallbacksAndMessages(null);
super.onDetachedFromWindow();
}
しかし、問題は、私はすぐにボタン(1 -2秒)をバック]をクリックした場合でも、私はまだ解雇postDelay()
た実行可能です。
何らかの理由がありますか?
感謝View#postDelayed
の
この
postDelayed
コールを移動.html#clear(android.view.View))。 – azizbekian