2015-12-22 2 views
2

Lorsque je n'appelle pas Toast avant de démarrer une autre activité, les choses fonctionnent comme prévu. Mais l'activité ne commencera pas si j'appelle Toast avant startActivity. S'il vous plaît vérifier ce code pour comprendre mon problème:StartActivity ne fonctionne pas lorsque Toast est appelé avant

class LoginTask extends HttpAsyncTask { 
    @Override 
    protected void onPostExecute(String result) { 
     if (result != null) { 
      LoginResponse loginResponse = (LoginResponse) getMappedModel(result, LoginResponse.class); 
      if(loginResponse.getResult().equals("success")) { 
       /*startActivity works only if I comment this line*/ Toast.makeText(getBaseContext(), "Logged in Successfully!", Toast.LENGTH_SHORT).show(); 
       Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
       startActivity(intent); 
      } else { 
       Toast.makeText(getBaseContext(), "Wrong username or password!", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 
} 
+1

Remplacez 'getBaseContext()' par 'LoginActivity.this' et réessayez. –

+0

Fait cela. Cela n'aide pas! – iamlegend

+0

Vous obtenez un journal des erreurs? –

Répondre

1

Sans voir tout votre code, je suggère d'utiliser getApplicationContext, ceci renverrait le contexte de l'application.

Toast.makeText(getApplicationContext(), "Logged in Successfully!", Toast.LENGTH_SHORT).show(); 
Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
+0

Si cela ne fonctionne pas, vous devrez montrer que cette classe se trouve dans votre application –

+0

getApplicationContext() a résolu mon problème. Merci! – iamlegend

+0

@iamlegend vous êtes le bienvenu, http://stackoverflow.com/questions/9605459/android-why-must-use-getbasecontext-instead-of-this et http://stackoverflow.com/questions/5458156/diffinitive- rules-for-using-androids-getbasecontext-getapplicationcontext -ou-u donne une bonne explication de l'utilisation de getbasecontext. –

1

Je ne sais pas pourquoi votre Toast empêche MainActivity de démarrer, mais vous devriez être en mesure de le corriger en déplaçant votre code montrant toast à l'intérieur OnCreate méthode de MainActivity. Vous pouvez également ajouter une intention spéciale boolean supplémentaire, showsuccesstoast qui indiquerait MainActivity.onCréer que toast devrait être affiché.