我正在处理一个简单的函数,该函数用于执行另一个静态引用调用的HTTP朋友请求。问题是谷歌提供的(Tab Navigator Activity)预构建代码的片段系统不允许我在那里使用非静态方法。使用静态还是非静态是一个好主意? (Android)
我称之为方法
enviarsolicitud(param1,param2);
这是无效的代码,我说
private static void enviarsolicitud(final String idadder, final String idadded)
{
class EnviarSolicitudClass extends AsyncTask<String,Void,String>
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
System.out.println("enter");
}
@Override
protected void onPostExecute(String s)
{
super.onPostExecute(s);
if(s.contains("friendrequest")){
String[] friendrequest = s.split(":");
System.out.println(friendrequest[0] + " " + friendrequest[1]);
}
else if (s.contains("friendrequestcant"))
{
}
else
{
}
}
@Override
//En segon pla
protected String doInBackground(String... params)
{
HashMap<String,String> dades = new HashMap<>();
dades.put("idadder",params[0]);
dades.put("idadded",params[1]);
RegisterUserClass ruc = new RegisterUserClass();
String resultat = ruc.sendPostRequest("http://www.myurl.net/friend.php",dades);
return resultat;
}
}
EnviarSolicitudClass esc = new EnviarSolicitudClass();
esc.execute(idadder,idadded);
}
我不知道了很多关于非静态代码和静态,但问题是,谷歌使用静态方法预构建的活动。你是否建议为这种类型的空洞使用静态?我总是使用非静态方法,因为静态是有限的很多
我有点困惑。你的第一个例子不是一种方法。这是一个创建匿名内部类的声明。第二个例子和第一个例子完全不同。 3. Java不允许在方法内部声明类,所以第二个例子甚至不会编译(假设方法本身在另一个类中)。 –
@ Code-Apprentice我可以编译它,在我的代码中没有错误 –
@ Code-Apprentice您实际上可以在方法中创建类。它的愚蠢,但我看过很多帖子似乎认为这应该如何AsyncTasks –