我有一個擴展AsyncTask來發送以太網消息的類。當創建,並打電話給我的MainActivity內正常工作:如何獲取對調用方法的Activity的引用?
new SendCommandTask(MainActivity.this).execute(ipAddress, portNum, message);
不過,我想在一個新的類,而不是一個方法中嵌入這個...
public class NewClass{
String ipAddress;
String portNum;
String command;
public NewClass(String ip, String pn, String, c){
ipAddress = ip;
portNum = pn;
command = c;
}
public send(){
SendCommandTask(MainActivity.this).execute(ipAddress, portNum, command);
}
}
...然後調用方法是直接從我的MainActivity:
NewClass newClass = new NewClass;
NewClass.send();
我試圖傳遞活動在構造另一個參數,但是當我做了該方法pukes。有沒有另一種方法來引用我的NewClass中的調用Activity?或者我堅持從MainActivity運行AsyncTask? (我希望這是有道理的,我對Java和OO編程一般都很陌生。)非常感謝任何幫助!
我同意Sparky你應該考慮IntentService。否則,當你說'但方法pukes'時,請張貼你所指的錯誤。 – newbyca
另外,這裏有更多關於活動和異步任務如何交互的信息:http://stackoverflow.com/questions/12117031/what-happens-to-an-asynctask-when-the-launching-activity-is-stopped-銷燬-wh – newbyca