2015-07-06 4 views
2

Я использую parse для регистрации пользователя и входа в систему. Я успешно завершил эти модули. Теперь я сомневаюсь, что, где и как проверить, если пользователь уже вошел в систему. Если пользователь уже вошел в систему, покажите ему, что MainActivity else покажет ему HomeActivity.Проверьте, если пользователь уже зарегистрировался в Parse - Android

В настоящее время у меня есть HomeActivity как моя пусковая в Manifest

<activity 
      android:name=".Activities.Home" 
      android:label="@string/title_activity_home" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 

Тогда у меня есть класс приложений, где я инициализировать объект синтаксического анализа.

public class MyClass extends Application { 
    public static Context context; 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     context = getApplicationContext(); 

     Parse.initialize(this, "KEYS", "KEYS"); 

     if(ParseUser.getCurrentUser().isAuthenticated()){ 
      Intent intent = new Intent(context,MainActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
     }else{ 
      Intent intent = new Intent(context,Home.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
     } 

    } 
} 

Я получаю эту ошибку в LogCat

java.lang.RuntimeException: Unable to create application com.artqueen.aahaan.Aahaan: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.parse.ParseUser.isAuthenticated()' on a null object reference 
      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5255) 
      at android.app.ActivityThread.access$1600(ActivityThread.java:182) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:145) 
      at android.app.ActivityThread.main(ActivityThread.java:6141) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.parse.ParseUser.isAuthenticated()' on a null object reference 
      at com.artqueen.aahaan.Aahaan.onCreate(Aahaan.java:33) 
      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020) 
      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5252) 
            at android.app.ActivityThread.access$1600(ActivityThread.java:182) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:145) 
            at android.app.ActivityThread.main(ActivityThread.java:6141) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

Как этого добиться? Заранее спасибо.

+0

Просто пройти через код, и я уверен, вы поймете логику, чтобы создать это [Проверить это] (http://androidexample.com/Android_Session_Management_Using_SharedPreferences_-_Android_Example/index.php?view=article_discription&aid=127&aaid=147) –

ответ

3

От PARSE документы:

ParseUser currentUser = ParseUser.getCurrentUser(); 
if (currentUser != null) { 
    // do stuff with the user 
} else { 
    // show the signup or login screen 
} 

Пробовали ли вы это?

0

Вы не можете позвонить ParseUser.getCurrentUser().isAuthenticated() в заявку.

Проверить это ... Официальный разбор Войти пример приложения https://github.com/ParsePlatform/ParseUI-Android

ParseUI содержит библиотеки пользовательского интерфейса для создания приложений с Android SDK Разбор.

public class SampleApplication extends Application { 
    @Override 
    public void onCreate() { 
    super.onCreate(); 
    // Required - Initialize the Parse SDK 
    Parse.initialize(this); 

    Parse.setLogLevel(Parse.LOG_LEVEL_DEBUG); 

    ParseFacebookUtils.initialize(this); 

    // Optional - If you don't want to allow Twitter login, you can 
    // remove this line (and other related ParseTwitterUtils calls) 
    ParseTwitterUtils.initialize(getString(R.string.twitter_consumer_key), 
     getString(R.string.twitter_consumer_secret)); 
    } 
} 
0

Открытый класс Applicaton в классе манифеста, а затем попробуйте код.

+0

извините, ясен? –

+0

Определите класс приложения в вашем классе манифеста над активностью. –

Смежные вопросы