¿Cómo cerrar la actividad del servicio?

Estoy lanzando la actividad del servicio basado en un cierto valor conseguido del servidor y la actividad será exhibida por algún tiempo y después de conseguir la instrucción cercana del servidor necesito cerrar esa actividad, así que para eso utilicé el acercamiento siguiente pero no es Trabajo: on Clase de servicio:

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); } } 

Y sobre la actividad dentro del método onCreate:

 Bundle bundle = getIntent().getExtras(); boolean isClosed = bundle.getBoolean("close"); if(isClosed){ finish(); } 

Lo depuré y encontré que el control alcanza al método onCreate si (isClosed) condiciona y ejecuta el método finish () pero también no cierra la actividad.

Así que no podría ser capaz de analizar lo mal que estoy haciendo.

Por favor, ayúdame a resolver este problema.

Recuerdos, Piks.

Escriba un receptor de difusión en su CustomDialogActivity como sigue.

 private final BroadcastReceiver abcd = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; 

A continuación, regístrelo en el mismo archivo como el siguiente:

 onCreate(){ registerReceiver(abcd, new IntentFilter("xyz")); } 

Desregistrarlo en onDestroy.

 onDestroy(){ //unRegister } 

Ahora, cada vez que quiera cerrar esa Actividad simplemente llame como a continuación.

 sendBroadcast(new Intent("xyz")); 

Espero que esto ayude.

Debe agregar el receptor al manifiesto para su actividad, Por ejemplo:

  <activity android:name="MyActivity"> <intent-filter> <action android:name="xyz" /> </intent-filter> </activity> 

Intente enviar la emisión utilizando el contexto.

 context.sendBroadcast(new Intent("xyz")); 

La respuesta de Jainal está trabajando para mí.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.