试图在AsyncTask的onPostExecute方法中创建一个intent

时间:2013-04-25 14:12:33

标签: android

我正在使用AsyncTask任务从Web服务器加载响应。根据响应的不同,我想启动一个新的Activity或显示一条错误消息。现在我正在尝试在onPostExecute类的AsyncTask方法中执行此操作。我尝试创建Intent时遇到 Constructor is undefined 错误。

这是我的代码:

protected void onPostExecute(String result) {  
      // code thate xcicutes after thread
      if ( result.contains("OK"))
        {
            PreSave();

            Intent I;

            if (ChatOrGame==1)
               i = new Intent(cGlobals.mParent );
            else
                i = new Intent(cGlobals.mParent);

            startActivity(i);       
        }
        else
        {
            if (bInternetError==false)
            {
            new AlertDialog.Builder( cGlobals.mParent)
            .setTitle("Log In Error")
            .setMessage( "User name or password" )
            .setNeutralButton("close",new DialogInterface.OnClickListener()
            {
                public void onClick(DialogInterface dlg, int i)
                {

                }} ).show();            

            }
        }
  }

1 个答案:

答案 0 :(得分:2)

您需要将Activity想要开始添加到Intent

i = new Intent(cGlobals.mParent, NextActivity.class);

Intent没有Constructor只接受Context,因此您收到此错误。您需要添加Activity才能启动,以便Intent知道如何处理这些信息。这当然假设cGlobals.mParentcontext,我相信这是你在别处使用它的方式以及你给它的名字。那你认为Intent IIntent i,我认为这是一个错字或者甚至不应该编译

注意正如@Trinimon在评论中所说的那样,确保Activity开始时Intent定义了manifest或{}}进一步的问题