Java Android更改来自其他类的事件定义

Java Android更改来自其他类的事件定义,java,android,android-asynctask,Java,Android,Android Asynctask,我有一节主课 public class MainActivity extends Activity { downloadTask downloadTask; .... void updateProgress(int... progress) { } } 和一个异步任务 public class downloadTask extends AsyncTask<Void, double[], Void> { .... protected

我有一节主课

public class MainActivity extends Activity {
    downloadTask downloadTask;
    ....
    void updateProgress(int... progress) {

    }
}
和一个异步任务

public class downloadTask extends AsyncTask<Void, double[], Void> {
    ....
    protected void onProgressUpdate(int... progress) {
    }    
}

在java中这样做可能吗?

您可以这样做:

AsyncTask<Void, double[], Void> task = new AsyncTask<Void, double[], Void>(activity);
{
     private WeakReference<Activity> activityReference;

     public AsyncTask(Activity activity)
     {
          this.activityReference = new WeakReference<Activity>(activity);
     }

     protected void onProgressUpdate(int... progress) 
     {
         Activity activity = activityReference.get();
         if(activity != null)
         {
             activity.updateProgres(...);
         }
     }    
}
AsyncTask task=新的AsyncTask(活动);
{
私人财富参考活动参考;
公共异步任务(活动)
{
this.activityReference=新的WeakReference(活动);
}
受保护的void onProgressUpdate(int…progress)
{
Activity=activityReference.get();
if(活动!=null)
{
activity.updateprogregs(…);
}
}    
}
请注意,我在AsyncTask中使用WeakReference,这对于防止内存泄漏非常重要。

。如果有帮助,请检查此选项
AsyncTask<Void, double[], Void> task = new AsyncTask<Void, double[], Void>(activity);
{
     private WeakReference<Activity> activityReference;

     public AsyncTask(Activity activity)
     {
          this.activityReference = new WeakReference<Activity>(activity);
     }

     protected void onProgressUpdate(int... progress) 
     {
         Activity activity = activityReference.get();
         if(activity != null)
         {
             activity.updateProgres(...);
         }
     }    
}