如何在 android 中延迟操作(为什么处理程序不工作?)

How to delay operation in android(why doesn't handler work?)

我制作了一个动画(我将其命名为 slide.xml),我的简单应用程序包含一个按钮,当用户单击按钮时,动画在 ImageView 中开始,我想在动画结束后使 imageView 不可见完成的。我搜索了互联网,发现使用处理程序是实现这一目标所需要的。

这是我尝试过的:

import java.util.logging.Handler;

对于 onClick 方法:

imageViewForGif = (ImageView) findViewById(R.id.imageviewForGif);
    imageViewForGif.setBackgroundResource(R.drawable.slide);
    AnimationDrawable frameAnimation = (AnimationDrawable) imageViewForGif.getBackground();
    imageViewForGif.setVisibility(View.VISIBLE);
    frameAnimation.start();

    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        public void run() {
            imageViewForGif.setVisibility(View.INVISIBLE);
        }
    }, 2000);
}

但编译器无法识别 new Handler()postDelayed。 我不知道我做错了什么

您必须从

导入处理程序
import android.os.Handler;

而不是

import java.util.logging.Handler;

希望对您有所帮助!

尝试使用这个导入语句:

import android.os.Handler;

而不是import android.util.logging.Handler;

您正在搜索的是管理线程队列的androids Handler。 Java 的日志记录处理程序实际上不需要您担心。来自文档:

android: There are two main uses for a Handler: (1) to schedule messages and runnables to be executed as some point in the future; and (2) to enqueue an action to be performed on a different thread than your own.


java: A Handler object accepts a logging request and exports the desired messages to a target, for example, a file, the console, etc

试试这个 class:

import android.os.Handler;