如何从AsyncTask启动Intent

时间:2012-03-03 09:43:54

标签: android android-activity android-intent android-asynctask

我正在尝试从doInBackground()方法启动我的AsyncTask中的一个Activity,但它似乎没有启动。

我已经使用params [0]传递了我称之为AsyncTask的Activity。

    public class StartProcess extends AsyncTask<Main, Void, Main>
{
    @Override
    protected Main doInBackground(Main... params) { 

        return params[0];
    }
    protected void onPostExecute(Main... params) {
        // TODO Auto-generated method stub
        System.out.println("post");
        Intent loc = new Intent(params[0],LocationHandler3.class);
        loc.putExtra("locationType",0);
        loc.putExtra("startEndType",0);
        params[0].startActivity(loc);
    }


}

2 个答案:

答案 0 :(得分:1)

   StartProcess objStartProcess= new StartProcess();
   objStartProcess.execute("");

使用execute("")您可以调用doinBackground() method. ...并在OnPostExecute方法中完成AsyncTask然后尝试在...中启动活动

答案 1 :(得分:1)

使用此修改后的代码。

    public class StartProcess extends AsyncTask<Main, Void, Main> {  
      @Override
        protected Main doInBackground(Main... params) { 
             return params[0]; 
       }
     protected void onPostExecute(Main params) { 
    // TODO Auto-generated method stub
        System.out.println("post"); 
         Intent loc = new Intent(params,LocationHandler3.class); 
          loc.putExtra("locationType",0); 
          loc.putExtra("startEndType",0); 
          startActivity(loc);
    }
    }