在Restart()上启动动画的正确方法是什么?



目前,我在我所有的活动中使用这个:

@Override
public void onRestart(){
    onStart();
    onResume();
    runFadeInAnimation();
}

它"有效",但我不知道这是否会在未来把我搞砸。我不确定它是否侥幸成功,还是应该这样做。我试着通过:

@Override
public void onRestart(){
    super.onRestart();
    runFadeInAnimation();
}

但我不能-因为我所有的活动扩展我的主要活动,如果我运行的超级它试图调用我的主要活动onRestart(),这将崩溃。(我也想让我的主要淡入,所以我也在那里运行一个动画)

我如何才能优雅地处理这个问题,而不会在不知不觉中引起错误?

看看这里的活动生命周期:http://developer.android.com/reference/android/app/Activity.html

你所做的实际上是多余的,应该在活动重新启动时自动发生。

听起来你在如何定义你的主要活动和如何扩展它方面有一些可能的设计问题。如果我可以提出建议,我会说,如果你在一个活动中有一些东西在你所有的活动中都是通用的,那么把这些东西放在一个你可以扩展的"父"活动中。你现在定义"主要"活动的方式似乎有一些不适合其他活动的细节。所以,一旦你设置了你的"父"活动类,扩展它来创建"主"活动,并把"渐入"逻辑在那里。

最终,您应该能够调用super。

相关内容

最新更新