Android APP:执行AnimationListener后,程序得到了一个未被捕获的异常

时间:2015-06-03 08:48:36

标签: android android-layout animation

我的Android代码如下:

AnimationListener al = new Animation.AnimationListener(){

        public void onAnimationEnd(Animation animation){
        try{
            Intent mainMenu = new Intent(Splash.this,MainMenu.class);               

            startActivity(mainMenu);
            Log.d(Splash.ACTIVITY_TAG, "Haha , this is after startActivity.");
            }
            catch (Exception e){
                String str= e.getMessage();
                Log.d(Splash.ACTIVITY_TAG, " this is in catch.");
            }
        }
        public void onAnimationRepeat(Animation animation){}
        public void onAnimationStart(Animation animation){}
    };

这部分没有错误,因为它没有发现任何异常。 但它不能进入​​下一个活动Mainmenu。 我通过F8调试代码,程序停止威胁,并抛出未捕获的异常。

  

06-05 22:32:31.191:E / Trace(623):错误打开跟踪文件:没有这样的文件或目录(2)
      06-05 22:32:31.381:W / ActivityThread(623):应用程序com.example.zami正在等待端口8100上的调试器...
      06-05 22:32:31.421:I / System.out(623):发送WAIT块       06-05 22:32:31.530:I / dalvikvm(623):调试器处于活动状态       06-05 22:32:31.635:I / System.out(623):调试器已连接
      06-05 22:32:31.635:I / System.out(623):等待调试器解决...
      06-05 22:32:31.840:I / System.out(623):等待调试器解决...
      06-05 22:32:33.650:I / System.out(623):调试器已结算(1406)
      06-05 22:32:34.760:D / dalvikvm(623):GC_FOR_ALLOC释放71K,2%免费10847K / 11011K,暂停45ms,总计53ms
      06-05 22:32:34.780:I / dalvikvm-heap(623):将堆(frag case)增长到11.873MB,用于1310512字节分配
      06-05 22:32:34.840:D / dalvikvm(623):GC_CONCURRENT释放1K,2%释放12125K / 12295K,暂停16ms + 5ms,总计49ms
      06-05 22:32:34.960:D / dalvikvm(623):GC_FOR_ALLOC释放0K,2%释放12126K / 12295K,暂停30ms,总计30ms
      06-05 22:32:34.980:I / dalvikvm-heap(623):将堆(frag case)增长到14.093MB,用于2330784字节分配
      06-05 22:32:35.040:D / dalvikvm(623):GC_CONCURRENT释放0K,2%释放14402K / 14599K,暂停15ms + 15ms,总计61ms
      06-05 22:32:35.630:D / gralloc_goldfish(623):未检测到GPU仿真的仿真器。
      06-05 22:32:38.330:D / MyAndroid(623):哈哈,这是在startActivity之后。
      06-05 22:33:45.141:D / AndroidRuntime(623):关闭VM
      06-05 22:33:45.141:W / dalvikvm(623):threadid = 1:线程退出未捕获异常(组= 0x40a13300)
      06-05 22:33:47.050:E / AndroidRuntime(623):致命异性:主要
      06-05 22:33:47.050:E / AndroidRuntime(623):android.app.SuperNotCalledException:Activity {com.example.zami / com.example.zami.Splash}没有调用super.onPause()
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.Activity.performPause(Activity.java:5110)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1225)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2825)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2794)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2772)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread.access $ 800(ActivityThread.java:130)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1206)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.os.Handler.dispatchMessage(Handler.java:99)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.os.Looper.loop(Looper.java:137)
      06-05 22:33:47.050:E / AndroidRuntime(623):在android.app.ActivityThread.main(ActivityThread.java:4745)
      06-05 22:33:47.050:E / AndroidRuntime(623):at java.lang.reflect.Method.invokeNative(Native Method)
      06-05 22:33:47.050:E / AndroidRuntime(623):at java.lang.reflect.Method.invoke(Method.java:511)
      06-05 22:33:47.050:E / AndroidRuntime(623):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
      06-05 22:33:47.050:E / AndroidRuntime(623):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
      06-05 22:33:47.050:E / AndroidRuntime(623):at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

您在日志中有问题描述:

  

android.app.SuperNotCalledException:Activity   {com.example.zami / com.example.zami.Splash}没有打电话给   super.onPause()

所以,在Splash活动中找到你的onPause方法并在那里调用super.onPause()。

<强>更新

如果要在派生类中覆盖它,则应在每个生命周期回调中调用超级方法。