3

내 AsyncTask에서 doInBackground() 메소드로 Activity를 시작하려고하는데 시작하지 않는 것 같습니다.AsyncTask에서 인 텐트를 시작하는 방법

나는 AsyncTask를 호출 한 Activity를 params [0]를 사용하여 전달했습니다.

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


} 
+0

이렇게하려면 onpostexecute() 메서드를 사용하십시오. – Akram

+0

@Akki 이전과 같은 방법으로 Main을 전달합니까? – Neeta

+0

AsyncTask 황소를 반환하는 이유 왜 메인을 반환하지 않습니까? – Akram

답변

1

사용이 수정 된 코드 활동을 시작하려고 OnPostExecute 방법에 전체를 당신은 doinBackground() method.를 호출 할 수 있습니다 execute("")를 사용하여 ... 그리고 AsyncTask를.

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); 
    } 
    } 
+1

이것은 또한 내 Looper.loop() 문제를 해결했습니다. 더 이상 필요 없어! – Neeta

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

그래서에서 ...

관련 문제