我创建包含函数的类。但我想在MainActivity中的类和类中添加AsyncTask类,但我不知道我该怎么做:(
外部课程:
public class Function {
public Context mContext;
public Activity mactivity;
public Function(Context _context, Activity _activity)
{
mContext = _context;
mactivity = _activity;
}
public class GetJson extends AsyncTask<String,String,JSONObject>{
@Override
protected void onPreExecute(){
}
@Override
protected JSONObject doInBackground(String... params) {
return null;
}
@Override
public void onPostExecute(JSONObject getJson){
}
}
我知道我可以用这个方法打电话:
Function _func = new Function(getBaseContext(),MainActivity.this);
_func.someFunction();
但我不知道如何打电话。
此代码返回错误
_func.GetJson.execute();
答案 0 :(得分:0)
public class Function {
public Context mContext;
public Activity mactivity;
public Function(Context _context, Activity _activity)
{
mContext = _context;
mactivity = _activity;
}
public void runGetJson(){
new GetJson().execute();
}
public class GetJson extends AsyncTask<String,String,JSONObject>{
@Override
protected void onPreExecute(){
}
@Override
protected JSONObject doInBackground(String... params) {
return null;
}
@Override
public void onPostExecute(JSONObject getJson){
}
}
答案 1 :(得分:0)
您无法致电public class Login extends Fragment {
/**/
}
,因为_func.GetJson.execute();
它不是静态方法,您就是这样称呼的。
您应该创建一个GetJson对象并调用execute()
。如果要在Function之外创建对象,则应使execute()
为静态。
我的建议是,如果要创建一个扩展GetJson
的内部类,请在要用于执行它的类中执行它。如果你不能,因为你想在多个类中执行AsyncTask
,那么只为该AsyncTask创建一个类。