2010-07-18 3 views
0

, 나는 두 가지 오류 얻을 : 토큰에AsyncTask가 일반적이지 않습니까? 내가 코드를 다음에 컴파일 할 때

설명 리소스 경로 위치 유형 구문 오류를 "무효"잘못된 표현 AsyncTask.java/AsyncTask를 프로젝트/SRC/조직/ME/AsyncTask를 19 행 Java 문제

설명 리소스 경로 위치 유형 유형 AsyncTask는 일반적이지 않습니다. AsyncTask.java/AsyncTask Project/src/org/me/asynctask 라인 25 Java 문제

패키지 org.me.asynctask; 인수로 매개 변수화 할 수 없습니다.

import android.app.Activity; import android.content.Context; import android.os.Bundle; 가져 오기 android.widget.TextView; import android.widget.Toast; import android.os. *; public class AsyncTask extends Activity { /** 활동이 처음 생성 될 때 호출됩니다. */ @Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.main); 나는 이러한 오류를 얻을 왜

TextView mytextview = new TextView(this); 
    TextView secondtextview = new TextView(this); 

    new MyAsyncClass().execute(mytextview, void, secondtextview); 

} 



private class MyAsyncClass extends AsyncTask<TextView, Void, Void> { 
protected TextView doInBackground(TextView tv) 
{ 
    tv.setText("Your AsyncTask was successful!"); 
    return tv; 
} 


protected void onPostExecute(TextView Result) 
{ 
    Context context = context.getApplicationContext(); 
     Toast mytoast = Toast.makeText(context, "AsyncTask processing complete", Toast.LENGTH_LONG); 
     mytoast.show(); 
} 

} 

은 분명히 AsyncTask를 너무 일반적인 (http://developer.android.com/reference/android/os/AsyncTask.html#execute(Params...)입니다

답변

3

는 두 그중 몇 가지 문제가 있습니다 : 당신은 /는 android.os.AsyncTask와 충돌 숨 깁니다 클래스 AsyncTask을 정의

  1. . 어쩌면 당신이 그것을 AsyncTaskDemo.java 또는 AsyncTaskActivity.java 또는 무엇이라고 부르려고했다.

  2. doInBackground 안에 tv.setText을 호출하여 백그라운드 스레드에서 UI를 변경하려고합니다. 그것은 AsyncTask의 목적을 무효로합니다. doInBackground의 코드는 기본 (또는 'UI') 스레드를 건드려서는 안됩니다. doInBackground 내부 작업 업데이트의 경우 AsyncTask.publishProgress을 사용하십시오.

5

당신은 잘못된 유형과 AsyncTask를 방법을 재정의 그것은 다음과 같이 정의된다?.

AsyncTask<Params, Progress, Result> 

및 doInBackground 메서드는 으로 정의됩니다. protected abstract Result doInBackground (Params ... params)

그래서 정의를 사용하려면 을 보호해야합니다. void doInBackround (TextView ... params);

onPostExecute도 잘못 정의되었습니다.

관련 문제