在 Kotlin 中如何告诉函数等待几秒钟?
How do you tell a function to wait a few seconds in Kotlin?
此处 Android Studio 中的 Kotlin。
我正在尝试让 imageView 淡入主视图,等待几秒钟,然后淡出。在我的一生中,我找不到任何关于暂停或等待的文档。快把我逼疯了。
如何让我的函数冷静下来等待 3 秒,然后继续执行函数的其余代码?
理想情况下,我会在:
imageView.startAnimation(animIn)
imageView.startAnimation(animOut)
非常感谢任何帮助!
动物园
你可以使用Handler,
Handler().postDelayed(Runnable {
//anything you want to start after 3s
}, 3000)
导入 android.os.Handler 并尝试以下操作:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// yourAnimationMethod();
}
}, 1000); // 1000 milliseconds
如果您正在寻找 one-liner,您可以尝试:
(new Handler()).postDelayed(this::yourAnimationMethod, 1000); // 1000 milliseconds
您可以使用:
Timer("SettingUp", false).schedule(timeyouwant_in_milleseconds) {
imageView.startAnimation(animOut)
}
停止主线程几秒钟不是一个好主意。
您可以改用处理程序。
下面的代码将创建一个任务,该任务将在延迟后执行。 运行() 方法中的任何内容都将在延迟后执行。
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
imageView.startAnimation(animOut)
}
}, 3000);
因为这是 Kotlin 特有的,而不仅仅是 Android。为什么不使用 coroutines?
GlobalScope.launch {
imageView.startAnimation(animIn)
delay(3_000L)
imageView.startAnimation(animOut)
}
这是一个天真的示例,在 GlobalScope 上启动,设置 up/getting 协程的一些开销可能意味着它不适合您的用例。但是,如果您已经在您的应用程序中使用协程,或者希望在未来使用协程,那么这段代码的意图非常明确。
此处 Android Studio 中的 Kotlin。
我正在尝试让 imageView 淡入主视图,等待几秒钟,然后淡出。在我的一生中,我找不到任何关于暂停或等待的文档。快把我逼疯了。
如何让我的函数冷静下来等待 3 秒,然后继续执行函数的其余代码?
理想情况下,我会在:
imageView.startAnimation(animIn)
imageView.startAnimation(animOut)
非常感谢任何帮助!
动物园
你可以使用Handler,
Handler().postDelayed(Runnable {
//anything you want to start after 3s
}, 3000)
导入 android.os.Handler 并尝试以下操作:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// yourAnimationMethod();
}
}, 1000); // 1000 milliseconds
如果您正在寻找 one-liner,您可以尝试:
(new Handler()).postDelayed(this::yourAnimationMethod, 1000); // 1000 milliseconds
您可以使用:
Timer("SettingUp", false).schedule(timeyouwant_in_milleseconds) {
imageView.startAnimation(animOut)
}
停止主线程几秒钟不是一个好主意。 您可以改用处理程序。 下面的代码将创建一个任务,该任务将在延迟后执行。 运行() 方法中的任何内容都将在延迟后执行。
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
imageView.startAnimation(animOut)
}
}, 3000);
因为这是 Kotlin 特有的,而不仅仅是 Android。为什么不使用 coroutines?
GlobalScope.launch {
imageView.startAnimation(animIn)
delay(3_000L)
imageView.startAnimation(animOut)
}
这是一个天真的示例,在 GlobalScope 上启动,设置 up/getting 协程的一些开销可能意味着它不适合您的用例。但是,如果您已经在您的应用程序中使用协程,或者希望在未来使用协程,那么这段代码的意图非常明确。