按移动注销按钮时应用程序停止的错误

时间:2013-06-29 21:41:55

标签: android eclipse android-mediaplayer

我有 Android 应用程序播放声音,当我想从应用程序注销时按下移动注销按钮我有错误消息“应用程序已停止... ”。

@Override
protected void onStop() {

         super.onStop(); 

    if(mp.isPlaying())
      mp.stop();
      mp.release();
      finish();
      }


@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();


    if(mp!=null)
    {


         if(mp.isPlaying())

      mp.stop();
         mp.release();


    }
    finish();

}

  

06-30 00:09:48.403:I / Choreographer(678):跳过106帧!应用程序可能在其主线程上做了太多工作。   06-30 00:09:48.452:D / gralloc_goldfish(678):未检测到GPU仿真的仿真器。   06-30 00:09:49.761:I / Choreographer(678):跳过135帧!应用程序可能在其主线程上做了太多工作。   06-30 00:09:51.331:D / dalvikvm(678):GC_CONCURRENT释放82K,2%免费8378K / 8519K,暂停123ms + 21ms,总计278ms   06-30 00:10:18.202:W / IInputConnectionWrapper(678):showStatusIcon在非活动的InputConnection上   06-30 00:10:19.042:D / AndroidRuntime(678):关闭VM   06-30 00:10:19.042:W / dalvikvm(678):threadid = 1:线程退出未捕获异常(组= 0x40a13300)   06-30 00:10:19.211:E / AndroidRuntime(678):致命异常:主要   06-30 00:10:19.211:E / AndroidRuntime(678):android.app.SuperNotCalledException:Activity {com.ramadan / com.ramadan.Ramadan}没有调用super.onStop()   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.Activity.performStop(Activity.java:5148)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3232)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3291)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.ActivityThread.access $ 1200(ActivityThread.java:130)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1248)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.os.Handler.dispatchMessage(Handler.java:99)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.os.Looper.loop(Looper.java:137)   06-30 00:10:19.211:E / AndroidRuntime(678):在android.app.ActivityThread.main(ActivityThread.java:4745)   06-30 00:10:19.211:E / AndroidRuntime(678):at java.lang.reflect.Method.invokeNative(Native Method)   06-30 00:10:19.211:E / AndroidRuntime(678):at java.lang.reflect.Method.invoke(Method.java:511)   06-30 00:10:19.211:E / AndroidRuntime(678):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)   06-30 00:10:19.211:E / AndroidRuntime(678):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)   06-30 00:10:19.211:E / AndroidRuntime(678):at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:1)

它会在SuperNotCalledException中抛出onStop(),这意味着您没有调用super.onStop()

@Override
public void onStop(){
  super.onStop(); // must be called.
}

活动通知周期中的每个方法(例如onCreate()onResume()onStart()等都应调用超级方法。