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