我在Android中使用animationdrawable时遇到了一个常见问题.我希望在Activity开始时在onCreate()方法中启动动画,但是正如许多人发现的那样,它不起作用.
我已经阅读了很多建议,但似乎没有什么对我有用.如果我在onClick()中启动动画它可以工作,它需要用户输入,而不是立即启动.
我尝试在onCreate()中的一个单独的线程中启动它,但这也不起作用.我在这里读到:
http://code.google.com/p/android/issues/detail?id=1818
但没有一条建议奏效,或者我无法理解.
有人可以帮忙吗?
根据您提供的链接,您必须在单独的线程中启动动画。在 Java 中,您可以通过实现Runnable接口并启动它来实现这一点
Thread t = new Thread(new MyRunnable()); // MyRunnable inherits Runnable
t.start();
Run Code Online (Sandbox Code Playgroud)
你也可以这样写代码
new Thread(new Runnable() {
public void run(){
// some code that runs outside the ui thread.
}
}).start();
Run Code Online (Sandbox Code Playgroud)
如果你不想实现一个全新的类。后者当然不是那么漂亮,但如果您正在制作一个小项目,那么了解它可能会很高兴。
您尝试过这种方式还是以另一种方式开始您的线程?
另请阅读Painless Threading,它介绍了您必须在 ui 线程之外执行操作的可能性以及如何从您自己的线程发布在 ui 线程上运行的方法。
编辑:查看您发布的链接后,您必须等待一段时间才能开始线程,可能要等到 onCreate 完成为止。根据本页上的流程图,您应该能够稍后启动动画,例如在 onResume 调用中。您是否尝试过在 onCreate 之后调用的方法中启动它?
您应该只在 onCreate 中创建事物,并在 onStart 或 onResume 中“启动”它们。