我正在處理一個簡單的函數,該函數用於執行另一個靜態引用調用的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 –