【发布时间】:2016-08-04 09:19:38
【问题描述】:
我在MainActivityclass 中使用protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
来使用它的data 作为用户进程的结果,并且我引入了另一个类来显示ProgressDialog pd;
---->>>>
public class Loading
extends AsyncTask<Void, Void, Void>
{
public Loading() {}
protected Void doInBackground(Void... paramVarArgs)
{
///////这里有些私有函数需要来自 onActivityResult 的数据值//////// //////////////如何在此处使用该数据值 ///////////// 返回空值; }
protected void onPostExecute(Void paramVoid)
{
super.onPostExecute(paramVoid);
MainActivity.this.pd.dismiss();
}
protected void onPreExecute()
{
super.onPreExecute();
MainActivity.this.pd.setTitle("Loading App....");
MainActivity.this.pd.setMessage("Please Wait.....");
MainActivity.this.pd.show();
}
}
现在我想使用 data 中的参数 protected void onActivityResult(int requestCode, int resultCode, Intent data) 到 protected Void doInBackground(Void... paramVarArgs){}
我怎样才能做到这一点 ?谢谢。
【问题讨论】:
-
为什么要这样做?你为什么不删除这个 AsyncTask,在 startActivityForResult() 时显示 ProgressDialog 并在有 onActivityResult() 时关闭它?
-
因为我想调用一些需要该数据的私有函数并且这些函数必须写在 doInbackground() 中,这些函数需要 onActivityResult 参数中的数据值
-
这些功能需要时间来显示 ProgressDialog pd;为用户直到这些功能的任务完成
-
AsyncTask 用于做少量工作并退出。它不适用于长时间运行的操作,因此尝试向其中传递新数据是不合适的。
-
为什么不在onActivityResult()中启动AsyncTask?
标签: java android android-studio