2014-02-17 2 views
0

내 응용 프로그램에 많은 활동 및 AsyncTask가 있습니다. Generic AsyncTask와 부울을 받아들이는 메소드로 Interface를 정의하고 싶습니다. 모든 액티비티에서 해당 인터페이스를 구현하고 AsyncTask에서 인터페이스의 메서드를 호출하려고합니다.Generic AsyncTask를 인수로 사용하는 함수를 선언하는 방법

AsyncTask의 모든 서브 클래스를 받아들이는 메소드는 어떻게 선언해야합니까? 나는 Generic으로 만들고 싶다면 instanceof 연산자를 사용하여 asyncTask가 Activity에서 Override 메소드를 호출 한 것을 판별 할 수있다. 내가 사용하려고 :

public onUpdate(AsyncTask<Params, Progress, Result> task,boolean show); 

을하지만, 허용되지 않습니다.

onUpdate(new SomeTask(), true); 

답변

1

당신은이 방법을 선언 할 수 있습니다 다음과 같은 방법 ...

public void onUpdate(AsyncTask<Object, Object, Object> task,boolean show); 
1

당신은 선언 할 수 있습니다 : 당신의 방법을

private class SomeTask extends AsyncTask<String, Integer, Long> { 

    @Override 
    protected Long doInBackground(String... params) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

} 

과 전화 :

public void onUpdate(AsyncTask<?, ?, ?> task, boolean show) { 

} 

당신은 다음 AsyncTask을 확장하여 사용할 수 있습니다 :

관련 문제