Java 如何将数据从一个活动传递到当前可见/活动活动?这是一个共同的好模式吗?
我想实现一般的AsyncTasks工厂,以避免每次运行异步操作时都要编写大量重复代码 所以我想在GlobalActivity中定义这个工厂类,每个想要使用AsyncTasks工厂的活动都应该子类化,但是我需要在从GlobalActivity继承的每个活动中使用doInBackground方法的结果。我的想法是在该类中定义某个方法updateCurrentActivity(),每个子类都必须重写该方法,并对doInBackground结果进行一些操作(例如显示它)。但我不知道如何处理这个结果。例如,以下是工厂onPostExecute定义:Java 如何将数据从一个活动传递到当前可见/活动活动?这是一个共同的好模式吗?,java,android,android-asynctask,Java,Android,Android Asynctask,我想实现一般的AsyncTasks工厂,以避免每次运行异步操作时都要编写大量重复代码 所以我想在GlobalActivity中定义这个工厂类,每个想要使用AsyncTasks工厂的活动都应该子类化,但是我需要在从GlobalActivity继承的每个活动中使用doInBackground方法的结果。我的想法是在该类中定义某个方法updateCurrentActivity(),每个子类都必须重写该方法,并对doInBackground结果进行一些操作(例如显示它)。但我不知道如何处理这个结果。例如
protected void onPostExecute(HashMap<String, Object> result)
{
currentActivityData = result;
//How to pass that result to the current Active
//activity which is overriding this method?
updateCurrentActivity();
}
受保护的void onPostExecute(HashMap结果)
{
currentActivityData=结果;
//如何将该结果传递给当前活动
//覆盖此方法的活动?
updateCurrentActivity();
}
创建这样的工厂是一个共同的好主意吗。或者最好的做法是每次我想使用AsyncTask时都编写
新的AsyncTask…
?您可以创建MyTask类来扩展AsyncTask,并从要执行任务的活动中传递一个构造函数中的处理程序,如
final Handler mHandler = new Handler() {
public void handleMessage(Message msg)
{
//get your data here
int something = msg.arg1;
}
};
public void myMethodInsideActivity{
new MyTask(this, mHandler).execute();
}
从任务的预处理、进度更新或后期调用此函数,如下所示
Message msg = new Message();
msg.arg1 = 1;
actHandler.sendMessage(msg);
这样,您只有一个任务类和多个实例,每个实例都通过处理程序与它的活动相连接在updateCurrentActivity方法中您在做什么?@ρσѕρєK一切。例如,只需在当前可见活动上显示结果即可使您自己成为一项
服务
,声明一个界面并将活动绑定到该界面,发布一些任务,获得有关结果的通知。