Android 从异步任务返回结果
异步任务类:Android 从异步任务返回结果,android,android-asynctask,Android,Android Asynctask,异步任务类: public int postToTwitter(String msg) { String url = null; new ImageSender().execute(); // Twitlink I have to pass in next line but it showing null twitter.updateStatus(msg+" "+twitlink); return 1; } 私有类ImageSender扩展异步任务{
public int postToTwitter(String msg) {
String url = null;
new ImageSender().execute();
// Twitlink I have to pass in next line but it showing null
twitter.updateStatus(msg+" "+twitlink);
return 1;
}
私有类ImageSender扩展异步任务{
私有字符串url;
受保护的void onPreExecute(){
mProgressDialog=ProgressDialog.show(OutgoingHome.this,“,“发送图像…”,true);
mProgressDialog.setCancelable(假);
mProgressDialog.show();
}
受保护的长doInBackground(URL…URL){
长结果=0;
ImageUpload upload=ImageUpload.getTwitpicUploader(“8B8F5DB5CA3837988509AF8459F968DBC”,auth);
试一试{
twitlink=upload.upload(新文件(路径));
结果=1;
}捕获(例外e){
}
返回结果;
}
受保护的void onPostExecute(长结果){
mProgressDialog.cancel();
}
}
最简单的方法是使用异步任务的get()
方法。另一种方法是实现一个OnResultListener
,并在AsyncTask
onPostExecute()
中调用它的onResult()
方法。然而,第一个解决方案应该足够了。希望这有帮助。您希望返回什么结果?
private class ImageSender extends AsyncTask<URL, Integer, Long> {
private String url;
protected void onPreExecute() {
mProgressDialog = ProgressDialog.show(OutgoingHome.this, "", "Sending image...", true);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
}
protected Long doInBackground(URL... urls) {
long result = 0;
ImageUpload upload = ImageUpload.getTwitpicUploader ("8b8f5db5ca383798509af8459f968dbc",auth);
try {
twitlink = upload.upload(new File(path));
result = 1;
} catch (Exception e) {
}
return result;
}
protected void onPostExecute(Long result) {
mProgressDialog.cancel();
}
}