하나의 TextView가있는 ProgressBar 만 포함하는 대화 상자 활동이 있습니다. 그 활동의 코드는 다음과 같습니다대화 상자의 테마 활동을 닫는 방법
public class ProgressDialog extends Activity{
TextView msg;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.progress_dialog);
msg = (TextView)findViewById(R.id.progressMsg);
progressBar = (ProgressBar)findViewById(R.id.progressBar);
Intent intent = getIntent();
String msgString = intent.getStringExtra("msg");
msg.setText(msgString);
}
}
이 내가 안드로이드의 모든 버전에 같은 모양과 쉽게 costumizable 대화를 가질 수 있도록 내 프로젝트에 사용하는 ProgressBar의 대화를 나타냅니다.
문제는 onPreExecute()
방법으로 정상 활동으로 시작하면 AsyncTask onPostExecute()
방법으로이 활동을 완료 할 수 있습니다. AsyncTask는 다른 Activity에서 호출됩니다. 나는 여러 가지 일을 시도했지만 성공하지 못했습니다. 나는 시도 :
- 이 도와주세요
활동의 마무리() 메소드를 호출하는 활동의 공개 방법을 구현 fragmentManager 및 activityManager
감사합니다.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (ACTION_CLOSE_DIALOG.equals(intent.getAction())){
finish();
}
}
당신은을 중지 할 수 있습니다
private void removeDialog() {
Intent removeDialogIntent = new Intent(this, ProgressDialogActivity.class).setAction(ACTION_CLOSE_DIALOG);
startActivity(removeDialogIntent);
}
그리고 progressDialogActivity에서
그것을 처리해야합니다 :
asynctask의 onpostexecute에서 finish()가 작동하지 않습니까? –
아니요.이를 수행하려면 실행중인 대화 상자 테마 활동의 인스턴스가 필요합니다. 이것이 주요한 문제입니다. – Aksiom