当Toast在它之前调用时,StartActivity无法正常工作

时间:2015-12-22 13:07:12

标签: android android-intent android-toast

如果我在开始其他活动之前没有打电话给Toast,事情会按预期进行。但是如果我在startActivity之前调用Toast,活动就不会开始。请检查此代码以了解我的问题:

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();
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果没有看到所有代码,我建议使用getApplicationContext,这将返回应用程序的上下文。

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

答案 1 :(得分:1)

我不确定为什么你的Toast会阻止MainActivity启动,但你应该能够通过移动你的toast在OnCreate MainActivity方法中显示代码来修复它。您还可以添加特殊意图boolean extra,showsuccesstoast,这将显示应该显示toast的Mainicectivity.onCreate。