Я только начал изучать, как создать приложение для Android, и я хочу создать приложение для тестирования скорости. Для этого я использовал этот класс: Speed Test libraryполучить результат обратного вызова от doInBackground метод
Я следовал примеру на веб-сайте github, но проблема в том, что я не могу получить результаты, которые будут отображаться в моем пользовательском интерфейсе. Я попытался реализовать интерфейс класса, но это привело к многочисленным ошибкам. Кто-нибудь знает, можно ли это сделать? Я просто хочу, чтобы отобразить результаты на GUI моего приложения ...
Это код, который я использую:
public class SpeedTestTask extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
mRunningBar.setVisibility(View.VISIBLE);
}
@Override
protected String doInBackground(Void... params) {
SpeedTestSocket speedTestSocket = new SpeedTestSocket();
speedTestSocket.addSpeedTestListener(new ISpeedTestListener() {
@Override
public void onDownloadPacketsReceived(int packetSize,
float transferRateBitPerSeconds,
float transferRateOctetPerSeconds) {
//Log.i(TAG, "download transfer rate : " + transferRateOctetPerSeconds * 1000 + "MBps");
download_result.setText("Download speed : " + transferRateOctetPerSeconds * 1000 + " MBps");
}
@Override
public void onDownloadError(int errorCode, String message) {
Log.i(TAG, "There was error " + errorCode + " Message: " + message);
}
@Override
public void onUploadPacketsReceived(int packetSize,
float transferRateBitPerSeconds,
float transferRateOctetPerSeconds) {
download_result.setText("Upload speed (upload) : " + transferRateOctetPerSeconds * 1000 + " MBps");
}
@Override
public void onUploadError(int errorCode, String message) {
// Log.i(TAG, "Upload error " + errorCode + " occured with message : " + message);
download_result.setText("Upload error (upload) " + errorCode + " Message: " + message);
}
@Override
public void onDownloadProgress(int percent) {
}
@Override
public void onUploadProgress(int percent) {
}
});
speedTestSocket.startDownload("ipv4.intuxication.testdebit.info", 80,"/fichiers/10Mo.dat");
speedTestSocket.startUpload("1.testdebit.info",
80, "/", 10000000);
return null;
}
@Override
protected void onPostExecute(String result) {
// download_result.setText(result);
mRunningBar.setVisibility(View.GONE);
}
}
Проверьте это http://stackoverflow.com/questions/14253421/how-one-interface-can-be-used-for-different-background-android-tasks/14376233#14376233 – Pragnani