Android - Facebook - Parse.com - App closing randomly during login

470 views Asked by At

I'm building an Android solution using Parse.com and Facebook SDK.

I have the following code for a login activity (note that I'm using android annotations). Sometimes, randomly, my app closes after the facebook login activity returns. It doesn't show any error on the console, just closes. The Login activity is the main activity for my app.

Does anyone know what could be wrong?

Thank you very much.

The code is:

package com.thiagorp.pelada.Activities;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import com.parse.LogInCallback;
import com.parse.ParseException;
import com.parse.ParseFacebookUtils;
import com.parse.ParseUser;
import com.thiagorp.pelada.R;

import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Fullscreen;

@EActivity(R.layout.login_activity)
@Fullscreen
public class LoginActivity extends Activity
{
    ProgressDialog mProgressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        ParseUser currentUser = ParseUser.getCurrentUser();
        if ((currentUser != null) && ParseFacebookUtils.isLinked(currentUser))
        {
            MainActivity_.intent(this).start();
        }
    }

    @Click(R.id.fbLoginButton)
    void fbLogin()
    {
        Log.d("Teste", "1");
        mProgressDialog = ProgressDialog.show(this, "", getResources().getString(R.string.logging_in_dialog), true);
        ParseFacebookUtils.logIn(this, new LogInCallback()
        {
            @Override
            public void done(ParseUser user, ParseException err)
            {
                Log.d("Teste", "2");
                if (mProgressDialog != null)
                    mProgressDialog.dismiss();

                if (user == null)
                {

                }
                else
                {
                    MainActivity_.intent(LoginActivity.this).start();
                }
            }
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);

        Log.d("Teste", "3");
        if (mProgressDialog == null)
            mProgressDialog = ProgressDialog.show(this, "", getResources().getString(R.string.logging_in_dialog), true);

        ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
    }

    @Override
    protected void onPause()
    {
        super.onPause();

        if (mProgressDialog != null)
            mProgressDialog.dismiss();
    }

    @Override
    protected void onResume()
    {
        super.onResume();

        if (mProgressDialog != null)
            mProgressDialog.show();
    }
}
1

There are 1 answers

0
Thiago On BEST ANSWER

I found out what the problem was.

I was using the android:noHistory="true" on the manifest file for that activity. So whenever the facebook login activity was being opened, my activity was automatically being destroyed.

Thank you very much.