在重新启动 activity 之前延迟动画

delay animation before restarting the activity

我有一个 GifImageButton 视图。我想启动它的动画然后重新启动 activity.

问题 是我希望动画在重新启动 activity 之前持续 3 秒。

我该怎么做?

这是我的代码:

myGifImageButton.setImageResource(R.drawable.animation);
Intent intent = getIntent();
finish();
if (intent != null) {
    startActivity(intent);
}

据我所知,更好的方法是使用可运行的,所以我尝试了这个但没有成功:

// start the animation
myGifImageButton.setImageResource(R.drawable.animation);

// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
    void run() {
        handler.postDelayed(this, 3000);
    }
};
handler.postDelayed(r, 3000);

// restart the activity
Intent intent = getIntent();
finish();
if (intent != null) {
    startActivity(intent);
}

那么如何在重新启动 activity 之前延迟动画?

您的 runnable 不正确 - 您不断地重新发布相同的 runnable 但什么都不做。

改为尝试这样的事情:

// start the animation
myGifImageButton.setImageResource(R.drawable.animation);

// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
    void run() {
       // restart the activity
       Intent intent = getIntent();
       finish();
       if (intent != null) {
           startActivity(intent);
       }
    }
};
handler.postDelayed(r, 3000);