2012-02-22 16 views
15

im przy pomocy kilku czujników - MediaRecorder i MediaPlayer, NotificationManager, a blokada wybudzenia i LocationListener ...android.app.SuperNotCalledException: Aktywność nie zadzwonił aż do super.onStop()

Oto moja onResume() i OnPause() funkcje:

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; 

} 

a oto wyjście 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} 

Jak naprawić ten błąd? Próbowałem dodać super.onStop() do mojego onPause().

+0

Sprawdź, czy to może Ci pomóc http://stackoverflow.com/questions/3124965/android-unable-to-stop-activity – kosa

+0

Tak, to było jedno z tych, które znalazłem, zanim opublikowałem ... Chyba b/c Nie mam funkcji onStop(), nie byłem pewien, czy tego potrzebowałem ... również próbowałam dodać super.onStop() do mojej funkcji onPause(), ale ten sam błąd ... –

+0

Nie, musisz mieć funkcja onStop. Nie można wywołać super.onStop() z pauzy. Pauza/Stop to różne operacje. – kosa

Odpowiedz

39

Musisz upewnić się, że masz super.onStop i super.onDestroy w swoich nadpisanych metod. To może być dobrym kandydatem na problem masz:

@Override 
protected void onStop() { 
    Log.w(TAG, "App stopped"); 

    super.onStop(); 
} 

@Override 
protected void onDestroy() { 
    Log.w(TAG, "App destroyed"); 

    super.onDestroy(); 
} 
+0

Przepraszamy za tak długi czas akceptację tej odpowiedzi ... sposób, w jaki przetwarzanie działało, w rzeczywistości nie obsługiwał tych metod po wyjęciu z pudełka (jest zabawną biblioteką wyższego poziomu dla systemu Android), więc byłem zdezorientowany ich wdrożenie ... wszystko już teraz posortowane. –

0

Zatrzymany rzucanie wyjątkami po dodaniu pustych wydarzenia OnPause i onResume (dodałem swoje metody tak czy inaczej, dla pewności).

Mimo to druga czynność nadal zatrzymuje się z pozornie bez powodu. Ale powiem jeszcze jedno pytanie.

Powiązane problemy