2014-12-26 2 views
0

Я реализовал PreferenceFragment, который я использую для обработки предпочтений пользователей.Фрагмент предпочтения Android OnBackPressed Crash

Проблема заключается в том, что я нажал кнопку «Назад» на устройстве, где произошел сбой приложения. Я использую тот же метод, который я использую для загрузки моего фрагмента, но onBackPressed вызывает сбои в работе.

FragmentSettings settings = new FragmentSettings(); 
ft.replace(R.id.container, settings); 
ft.addToBackStack("settings"); 
ft.commit();  

Вот журнал аварии:

12-26 09:53:54.351: E/InputEventSender(565): Exception dispatching finished signal. 
12-26 09:53:54.351: E/MessageQueue-JNI(565): Exception in MessageQueue callback: handleReceiveCallback 
12-26 09:53:54.421: E/MessageQueue-JNI(565): android.util.SuperNotCalledException: Fragment FragmentSettings{421d3d10 #1 id=0x7f0a0000} did not call through to super.onPause() 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.Fragment.performPause(Fragment.java:1861) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:935) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1167) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:717) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1502) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:495) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.Activity.onBackPressed(Activity.java:2318) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.Activity.onKeyUp(Activity.java:2295) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.KeyEvent.dispatch(KeyEvent.java:3197) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.Activity.dispatchKeyEvent(Activity.java:2529) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2181) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4670) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4637) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4336) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4393) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4369) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4529) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2215) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1863) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1854) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2192) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.os.MessageQueue.nativePollOnce(Native Method) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.os.MessageQueue.next(MessageQueue.java:138) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.os.Looper.loop(Looper.java:131) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at android.app.ActivityThread.main(ActivityThread.java:5602) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at java.lang.reflect.Method.invokeNative(Native Method) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at java.lang.reflect.Method.invoke(Method.java:515) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
12-26 09:53:54.421: E/MessageQueue-JNI(565): at dalvik.system.NativeStart.main(Native Method) 

Тогда:

12-26 09:56:06.561: D/AndroidRuntime(565): Shutting down VM 
12-26 09:56:06.561: W/dalvikvm(565): threadid=1: thread exiting with uncaught exception (group=0x4194dc08) 
12-26 09:56:06.651: E/AndroidRuntime(565): FATAL EXCEPTION: main 
12-26 09:56:06.651: E/AndroidRuntime(565): Process: com.soclip.views, PID: 565 
12-26 09:56:06.651: E/AndroidRuntime(565): android.util.SuperNotCalledException: Fragment FragmentSettings{421d3d10 #1 id=0x7f0a0000} did not call through to super.onPause() 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.Fragment.performPause(Fragment.java:1861) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:935) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1167) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:717) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1502) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:495) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.Activity.onBackPressed(Activity.java:2318) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.Activity.onKeyUp(Activity.java:2295) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.KeyEvent.dispatch(KeyEvent.java:3197) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.Activity.dispatchKeyEvent(Activity.java:2529) 
12-26 09:56:06.651: E/AndroidRuntime(565): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2181) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4670) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4637) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4336) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4393) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4369) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4529) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2215) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1863) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1854) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2192) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.os.MessageQueue.nativePollOnce(Native Method) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.os.MessageQueue.next(MessageQueue.java:138) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.os.Looper.loop(Looper.java:131) 
12-26 09:56:06.651: E/AndroidRuntime(565): at android.app.ActivityThread.main(ActivityThread.java:5602) 
12-26 09:56:06.651: E/AndroidRuntime(565): at java.lang.reflect.Method.invokeNative(Native Method) 
12-26 09:56:06.651: E/AndroidRuntime(565): at java.lang.reflect.Method.invoke(Method.java:515) 
12-26 09:56:06.651: E/AndroidRuntime(565): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
12-26 09:56:06.651: E/AndroidRuntime(565): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
12-26 09:56:06.651: E/AndroidRuntime(565): at dalvik.system.NativeStart.main(Native Method) 

Любая помощь? Благодарю.

+0

Этот код служит для отображения настроек, не так ли? Что вы делаете onBackPressed? Что вы хотите, чтобы приложение делало onBackPressed? Если вы добавили предыдущий фрагмент в задний стек, вам не нужно ничего кодировать в onBackPressed. Только звоните супер или вообще не реализуйте его. – hmartinezd

+0

Добавление в @hmartinezd Где находится журнал сбоев? –

+0

Я ничего не делаю на onBackPRessed, потому что я не знаю, как реализовать его во фрагменте, я использую этот термин, чтобы сказать, что я нажал кнопку «Назад». Я просто хочу вернуться в свой стек, как это делает приложение для всего загружаемого фрагмента, который не является фрагментом предпочтения ... – user2335528

ответ

0

Эта часть ошибки журнала

did not call through to super.onPause() 

указывает, что один из вашего фрагмента (ов) имеет метод OnPause но забыл называется super.onPause(); Проверьте, что ваш фрагмент onPause действительно вызывает super.onPause();. Что-то вроде этого.

+0

Так глупо, большое спасибо. – user2335528