Я запускаю активность из службы на основе некоторого значения, полученного с сервера, и активность будет отображаться в течение некоторого времени, и после получения закрытой инструкции с сервера мне нужно закрыть эту активность, поэтому для этого я использовал следующий подход но он не работает: по классу обслуживания:
if(((ActivityManager)this.getSystemService(ACTIVITY_SERVICE)).getRunningTasks(1).get(0).topActivity.getPackageName().equals("com")) {
if(((ActivityManager)this.getSystemService(ACTIVITY_SERVICE)).getRunningTasks(1).get(0).topActivity.getClassName().equals("com.CustomDialogActivity")){
Intent dialogIntent = new Intent(getBaseContext(), CustomDialogActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dialogIntent.putExtra("description", "");
dialogIntent.putExtra("cancelEnabled", false);
dialogIntent.putExtra("close", true);
getApplication().startActivity(dialogIntent);
}
}
и по активности внутри метода onCreate:
Bundle bundle = getIntent().getExtras();
boolean isClosed = bundle.getBoolean("close");
if(isClosed){
finish();
}
Я отлаживал его и обнаружил, что элемент управления достигает метода onCreate if (isClosed) и выполняет метод finish(), но не закрывает активность.
Поэтому не удалось проанализировать, что я делаю неправильно.