如何在 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;
我制作了一个动画(我将其命名为 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;