【问题标题】:Android onPause() causing Activity to crashAndroid onPause() 导致 Activity 崩溃
【发布时间】:2014-08-15 19:43:22
【问题描述】:
由于某种原因,当我完成该指定活动时,我的活动崩溃。在我只有 onDestroy 之前一切正常,除非我最小化应用程序(HOME 按钮),音乐仍然播放。
根据我收集到的信息,我最终使用onDestroy()、onResume() 和onPause() 来操纵MediaPlayer...但是由于某种原因,当活动完成时,一个警报对话框指出Unforunately, ProgramX has stopped.尽管如此,它还是会继续进行下一个 startActivity(intent)。
MediaPlayerAssets gls; // custom MediaPlayer Assets to fetch MediaPlayer objects
@Override
protected void onPause()
{
super.onPause();
gls.glbgm.pause(); // my logCat demands that the error occurs here.
resumeToPosition = gls.glbgm.getCurrentPosition();
}
@Override
protected void onRestart()
{
super.onRestart();
if(gls.glbgm != null && !gls.glbgm.isPlaying())
{
gls.glbgm.seekTo(resumeToPosition);
gls.glbgm.start();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
gls.glbgm.release();
gls.score.release();
gls.loser.release();
}
E/AndroidRuntime(23422):致命异常:主要
E/AndroidRuntime(23422): java.lang.RuntimeException: 无法暂停活动
{com.fenrirAB.request/getluckyPkg.GetLuckyGame}:java.lang.IllegalStateException
E/AndroidRuntime(23422):在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3112)
E/AndroidRuntime(23422):在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3067)
E/AndroidRuntime(23422):在 android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3045)
E/AndroidRuntime(23422):在 android.app.ActivityThread.access$900(ActivityThread.java:152)
E/AndroidRuntime(23422):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1295)
E/AndroidRuntime(23422):在 android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(23422): 在 android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(23422): 在 android.app.ActivityThread.main(ActivityThread.java:5299)
E/AndroidRuntime(23422):在 java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(23422):在 java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(23422):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
E/AndroidRuntime(23422):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
E/AndroidRuntime(23422):在 dalvik.system.NativeStart.main(本机方法)
E/AndroidRuntime(23422):原因:java.lang.IllegalStateException
E/AndroidRuntime(23422):在 android.media.MediaPlayer._pause(本机方法)
E/AndroidRuntime(23422): 在 android.media.MediaPlayer.pause(MediaPlayer.java:1372)
E/AndroidRuntime(23422): 在 getluckyPkg.GetLuckyGame.onPause(GetLuckyGame.java:357)
E/AndroidRuntime(23422):在 android.app.Activity.performPause(Activity.java:5447)
E/AndroidRuntime(23422):在 android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1243)
E/AndroidRuntime(23422):在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3098)
E/AndroidRuntime(23422): ... 12 更多
【问题讨论】:
标签:
android
android-mediaplayer
onpause