Saturday, 17 August 2013

Android Facebook SDK UserSettingsFragment crashes when paused before it finishes its tasks

Android Facebook SDK UserSettingsFragment crashes when paused before it
finishes its tasks

I use com.facebook.widget.UserSettingsFragment to manage login/logout to
Facebook in my app:
UserSettingsFragment userSettingsFragment = new UserSettingsFragment();
Session session = Session.getActiveSession();
if(session==null || session.isClosed()){
userSettingsFragment.setPublishPermissions(Arrays.asList("publish_actions"));
}
fragmentTransaction.replace(R.id.content_container, userSettingsFragment,
"userSettingsFragment");
It seems to login/logout properly, but when I start this Fragment when I'm
already logged and pauses it (by replacing the Fragment for instance), it
crashes. It seems that it has some thread running, and when it's finished,
it need the Activity and it's not there anymore, so it crashes.
It looks like a bug to me, or am I missing something?
08-18 12:16:58.345: E/AndroidRuntime(18068):
java.lang.IllegalStateException: Fragment UserSettingsFragment{420c3a08}
not attached to Activity
08-18 12:16:58.345: E/AndroidRuntime(18068): at
android.support.v4.app.Fragment.getResources(Fragment.java:579)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.facebook.widget.UserSettingsFragment.processImageResponse(UserSettingsFragment.java:383)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.facebook.widget.UserSettingsFragment.access$7(UserSettingsFragment.java:379)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.facebook.widget.UserSettingsFragment$2.onCompleted(UserSettingsFragment.java:370)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.facebook.widget.ImageDownloader$1.run(ImageDownloader.java:161)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
android.os.Handler.handleCallback(Handler.java:730)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
android.os.Handler.dispatchMessage(Handler.java:92)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
android.os.Looper.loop(Looper.java:137)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
android.app.ActivityThread.main(ActivityThread.java:5103)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
java.lang.reflect.Method.invokeNative(Native Method)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
java.lang.reflect.Method.invoke(Method.java:525)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-18 12:16:58.345: E/AndroidRuntime(18068): at
dalvik.system.NativeStart.main(Native Method)

No comments:

Post a Comment