Android AnimationUtils.loadAnimation()中出现异常(有时)
我在下面代码中给出的行中得到一个空指针异常。问题是,异常是随机发生的。很多时候,它只是工作,但有时它抛出一个异常(比如5%的时间)。任何帮助都将不胜感激Android AnimationUtils.loadAnimation()中出现异常(有时),android,android-animation,android-handler,Android,Android Animation,Android Handler,我在下面代码中给出的行中得到一个空指针异常。问题是,异常是随机发生的。很多时候,它只是工作,但有时它抛出一个异常(比如5%的时间)。任何帮助都将不胜感激 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { Animation animation = AnimationUtils.loadAnimation(getActivity().getApp
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
Animation animation = AnimationUtils.loadAnimation(getActivity().getApplicationContext(), R.anim.dialog_main_show_amination); //Exception in this line
fabAddDeliveryBoy.startAnimation(animation);
fabAddDeliveryBoy.setVisibility(View.VISIBLE);
}
}, 500);
问题在于,处理程序没有绑定到片段生命周期。即使在片段与其活动分离之后,处理程序消息也会触发,
getActivity()
将返回null
作为一个快速解决方案,您可以将Runnable
放入变量中,并清除例如onDestroyView()中的处理程序:
一个更优雅的解决方案,考虑将延迟作为动画本身的一部分。< /P>异常是什么?致命异常:GeActuviVe()抛出的JavaLang.NulLoPoExvice异常,应该检查GETActudio是否为NULL,就像上下文一样,在创建animation@Hacketo但就在这个处理程序上面,我有
JoolehApplication-jApp=(JoolehApplication)getActivity().getApplicationContext()
如果getActivity()
抛出null,它也应该为null。处理程序延迟了500毫秒,对吗?非常感谢。这看起来是一个有效的解决方案,但我不能确切地说,因为没有办法进行测试。它只是随机发生的。我已经接受了答案,如果问题仍然存在,我会在这里再次询问。
handler.removeCallbacks(runnable);