Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AnimationUtils.loadAnimation()中出现异常(有时)_Android_Android Animation_Android Handler - Fatal编程技术网

Android AnimationUtils.loadAnimation()中出现异常(有时)

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

我在下面代码中给出的行中得到一个空指针异常。问题是,异常是随机发生的。很多时候,它只是工作,但有时它抛出一个异常(比如5%的时间)。任何帮助都将不胜感激

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);