이 AsyncTask 내부 클래스를 만들었으니 이제는 외부 클래스로 만들고 싶습니다. 코드는 다음과 같습니다.내부 AsyncTask를 바깥 쪽 AsyncTask로 변환하는 방법?
private class DownloadDataFromServer extends AsyncTask<String, Integer, String> {
ProgressDialog dialog;
boolean connErr = false;
boolean soErr = false;
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(HomePage.this); !!!!PROBLEM!!!!
dialog.setIndeterminate(false);
dialog.setMax(100);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setCancelable(false);
dialog.setTitle("Download");
dialog.setMessage("Updating...");
dialog.show();
super.onPreExecute();
}
@Override
protected String doInBackground(String... urls) {
// do something
}
protected void onProgressUpdate(Integer... progress) {
// Update the progress
dialog.setProgress(progress[0]);
}
@Override
protected void onPostExecute(String result) {
if (connErr || soErr) {
String msg = "Bad connection";
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(HomePage.this); !!!!PROBLEM!!!!
builder.setCancelable(false);
builder.setTitle("Connection timeout");
builder.setMessage(msg);
builder.setPositiveButton("Retry", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
new DownloadDataFromServer().execute(new String[] { "http://www.example.com" });
}
});
builder.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish(); !!!!PROBLEM!!!!
}
});
AlertDialog dialog = builder.create();
dialog.show();
} else {
if (Integer.parseInt(result) <= 0) {
Toast.makeText(getBaseContext(), "Error!", Toast.LENGTH_SHORT).show(); !!!!PROBLEM!!!!
} else {
Toast.makeText(getBaseContext(), "OK!", Toast.LENGTH_SHORT).show(); !!!!PROBLEM!!!!
}
}
dialog.dismiss();
}
}
"!!!! 문제! 위 코드의 문자열 : 내가 얻은 모든 오류가 있습니다. 몇 가지 해결 방법을 적용하려고했지만 마침내 제대로 작동하지 않게 만들었습니다. 또한 나는 사용해야 만한다
private Database db = new Database(this);
그러나 나는 "this"대신에 무엇을 넣을 지 모른다. 이 내부 클래스를 올바른 방식으로 변환하도록 도와주세요.
내부 클래스에서 '이것'이 무엇인지 생각한 다음 변경 방법을 알 수 있습니다. –
또한 위에 게시 된 코드의 첫 번째 줄에서이 오류가 발생합니다. 클래스 DownloadDataFromServer에 대한 잘못된 수정 자; 공개, 초록 및 최종 만 허용됩니다. 무슨 일이야? – smartmouse