У меня есть собственный класс активности диалогового окна, который я вызываю, когда мне нужно показать строку ожидания для определенного процесса, после чего я называю его методом завершения, но Я не могу закончить эту деятельность там, или я не знаю, как назвать этот метод завершения, но я вызываю его через объект класса, мой код для WaitDialogManager
класс ниже. И я не хочу использовать широковещательный приемник для этого ...Как закончить действие из класса неактивности, где он был запущен
WaitDialogManager
пакет com.android.remotewipedata;
импорт android.app.Activity; import android.os.Bundle; импорт android.view.Window; импорт android.widget.TextView;
общественный класс WaitDialogManager расширяет активность {
TextView waitTitle, waitMessage;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.wait_dialog);
String title = getIntent().getStringExtra("waitDialogTitle");
String message = getIntent().getStringExtra("waitDialogMessage");
waitTitle = (TextView) findViewById(R.id.wait_dialog_title);
waitMessage = (TextView) findViewById(R.id.wait_dialog_message);
waitTitle.setText(title);
waitMessage.setText(message);
}
public void dismissWaitDialog(){
this.finish();
System.out.println("Finish Called");
}
}
и это, где я называю эту деятельность и пытается закончить его после завершения метода, код для этого класса не-активность ниже
ServerUtilities
public final class ServerUtilities {
//Other code
public static WaitDialogManager wdManager = new WaitDialogManager();
static boolean register(final Context context, String name, String email,
final String regId) {
// Starting WaitDialogManager activity here
context.startActivity(new Intent(context, WaitDialogManager.class)
.putExtra("waitDialogTitle", "Please wait...")
.putExtra("waitDialogMessage",
"Registering device on Server...")
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
String serverUrl = SERVER_URL + "/register.php";
Map<String, String> params = new HashMap<String, String>();
params.put("regId", regId);
params.put("name", name);
params.put("email", email);
// Try to register on server for a number of times
long backoff = BACKOFF_MILLI_SECONDS + random.nextInt(1000);
for (int i = 1; i <= MAX_ATTEMPTS; i++) {
try {
post(serverUrl, params);
System.out.println("Parameters: " + params);
GCMRegistrar.setRegisteredOnServer(context, true);
return true;
} catch (IOException e) {
if (i == MAX_ATTEMPTS) {
break;
}
try {
Thread.sleep(backoff);
} catch (InterruptedException e1) {
Thread.currentThread().interrupt();
return false;
}
backoff *= 2;
}
}
wdManager.dismissWaitDialog();
return false;
}
для этого диалогового окна, чтобы исчезнуть меня вручную Clic k, чтобы она исчезла, я хочу, чтобы она уклонилась/исчезла, когда метод register()
достиг своего конца. Спасибо
понадобится контекст класса активности, а затем вызвать context.finish(); – Raghunandan
как мне получить этот контекст? Я попытался вызвать метод, возвращающий контекст этого класса, но тот же результат. – Saqib
Вы не можете получить контекст, это нецелесообразно. Даже если бы вы могли, я подозреваю, что 'finish()' на самом деле не выполнит, действие вернется в рабочее состояние, а это значит, что вы можете просто сделать то, что я рекомендовал в своем ответе, и использовать 'startActivityForResult'. – Ali