Im sử dụng một vài cảm biến - MediaRecorder và MediaPlayer, NotificationManager, một WakeLock, và LocationListener ...android.app.SuperNotCalledException: Hoạt động không gọi qua để super.onStop()
Đây là onResume của tôi() và onPause() chức năng:
void onResume() {
super.onResume();
//GPS Sensor
locationListener = new MyLocationListener();
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, locationListener);
// Notification Manager
gNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
gNotification = new Notification();
gNotification.vibrate = gVibrate;
}
...
void onPause() {
super.onPause();
// Release the Recorder
if (mRecorder != null) {
mRecorder.release();
mRecorder = null;
}
// Release the Media Player
if(mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
// Release Power Manager
wake.Stop();
wake = null;
// Release Location Listener
locationManager.removeUpdates(locationListener);
locationManager = null;
}
và đây là kết quả Logcat ...
threadid=1: thread exiting with uncaught exception
(group=0x40015560)
FATAL EXCEPTION: main
android.app.SuperNotCalledException: Activity
{changethispackage.beforesubmitting.tothemarket.sonicdrift/
changethispackage.beforesubmitting.tothemarket.sonicdrift.SonicDrift}
did not call through to super.onStop()
at android.app.Activity.performStop(Activity.java:3875)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2619)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2690)
at android.app.ActivityThread.access$2100(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:964)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native
Method) W/InputManagerService( 96): Window already focused, ignoring
focus gain of:
[email protected]
I/Process (17118): Sending signal. PID: 17118 SIG: 9
I/ActivityManager( 96): Process
changethispackage.beforesubmitting.tothemarket.sonicdrift (pid 17118)
has died. I/WindowManager( 96): WIN DEATH: Window{40958d98
changethispackage.beforesubmitting.tothemarket.sonicdrift/changethispackage.
beforesubmitting.tothemarket.sonicdrift.SonicDrift
paused=false} I/WindowManager( 96): WIN DEATH: Window{40991f90
SurfaceView paused=false}
Làm cách nào để khắc phục lỗi này? Tôi đã cố gắng thêm super.onStop()
vào số onPause()
của mình.
Kiểm tra điều này có thể giúp bạn http://stackoverflow.com/questions/3124965/android-unable-to-stop-activity – kosa
Vâng, đó là một trong những thứ tôi đã tìm thấy trước khi đăng ... Tôi đoán b/c Tôi không có một onStop() chức năng, tôi đã không chắc chắn rằng tôi cần nó ... cũng đã cố gắng để thêm super.onStop() để onPause() của tôi chức năng, nhưng cùng một lỗi ... –
Không, bạn cần phải có chức năng onStop. Bạn không thể gọi super.onStop() từ tạm dừng. Tạm dừng/Dừng là các hoạt động khác nhau. – kosa