Minimice la aplicación cuando haga clic en el botón Atrás android

He creado una aplicación que llama a la onPause() cuando se pulsa el botón de retroceso.

Como siguiendo camino ..

 protected void onPause() { // TODO Auto-generated method stub super.onPause(); // Notification show in status bar NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( this).setSmallIcon(R.drawable.icon).setContentTitle("TNLRadio") .setContentText(""); // Creates an explicit intent for an Activity in your app // Intent resultIntent = new Intent(this, MainActivity.class); Intent resultIntent = this.getIntent(); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); // Adds the back stack for the Intent (but not the Intent itself) stackBuilder.addParentStack(MainActivity.class); // Adds the Intent that starts the Activity to the top of the stack stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); int mId = 0; // mId allows you to update the notification later on. mNotificationManager.notify(mId, mBuilder.build()); this.unregisterReceiver(UIStateManager.getInsatance()); // unregister call listener UIStateManager.getInsatance().onPause(this); } 

Quiero hacer las mismas cosas cuando haga clic en el botón Atrás … que está en onBackPress() . Llamo el método onPause() dentro del método onBackPress() .

Entonces conseguí el error como sigue:

 08-28 13:45:34.600: E/AndroidRuntime(14153): FATAL EXCEPTION: main 08-28 13:45:34.600: E/AndroidRuntime(14153): java.lang.IllegalArgumentException: Receiver not registered: com.ironone.streaming.evt.UIStateManager@4153d788 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:628) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1130) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:354) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.ironone.streaming.MainActivity.onPause(MainActivity.java:567) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.ironone.streaming.MainActivity.onBackPressed(MainActivity.java:866) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.app.Activity.onKeyUp(Activity.java:2099) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.view.KeyEvent.dispatch(KeyEvent.java:2633) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.app.Activity.dispatchKeyEvent(Activity.java:2329) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1957) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3546) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3519) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2603) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.os.Handler.dispatchMessage(Handler.java:99) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.os.Looper.loop(Looper.java:137) 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.app.ActivityThread.main(ActivityThread.java:4507) 08-28 13:45:34.600: E/AndroidRuntime(14153): at java.lang.reflect.Method.invokeNative(Native Method) 08-28 13:45:34.600: E/AndroidRuntime(14153): at java.lang.reflect.Method.invoke(Method.java:511) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 08-28 13:45:34.600: E/AndroidRuntime(14153): at dalvik.system.NativeStart.main(Native Method) 

Por favor, ayúdame tan pronto como sea posible

En primer lugar, quite completamente el onBackPressed() . A continuación, intente insertar el código siguiente en su onKeyDown() siguiente manera. (Si usted no tiene un tal método ya, sólo copia pasado el código siguiente)

 public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(true); return true; } // your other related codes } 

Su error está en la línea "onBackPressed(MainActivity.java:866)" . Utilice Ctrl+L para ir a él y por favor proporcione el código onBackpressed() con la línea 866.

Por otra parte su error es " java.lang.IllegalArgumentException: Receiver not registered: " así que usted tiene unregistered demasiado pronto su oyente o no fijó correctamente un oyente.

Intente paginar el registro de errores cuando lo pegue. Yo personalmente hago esto

Editar: gracias @trinimon tener que editar el código para usted 🙂 & @RiteshGune para tener el editor de la mien: D

Lea atentamente el registro de errores y aquí está la causa de la excepción:

 08-28 13:45:34.600: E/AndroidRuntime(14153): at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:354) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.ironone.streaming.MainActivity.onPause(MainActivity.java:567) 08-28 13:45:34.600: E/AndroidRuntime(14153): at com.ironone.streaming.MainActivity.onBackPressed(MainActivity.java:866) 

Por lo tanto, la causa raíz se encuentra en la línea 567 en su MainActivity.java archivo, parece que el receptor UIStateManager.getInsatance() ya ha sido no registrada (en algún lugar de su código).

Y aquí hay una publicación que aborda el mismo problema .

  • Android: Mejora de la frecuencia de muestreo del sensor mediante el uso de NDK y de sondeo
  • Cómo limitar la velocidad de la red del dispositivo Android para propósitos de prueba
  • (Dis-) Ventajas de tener varios módulos en un proyecto de Android Studio?
  • Aplicación de Android onLowMemory () en la API> = 14
  • ¿Hay implicaciones de rendimiento al usar ArrayList.get () muchas veces por iteración?
  • Múltiples declaraciones if
  • Android Studio generado APK se bloquea al ejecutar la aplicación en el mismo teléfono funciona bien. ¿Qué está mal?
  • Rendimiento de ListView abismal en Android ICS
  • ¿Cómo dibujar muchos rectángulos en lona con buen funcionamiento?
  • ¿Cuál es la mejor práctica de almacenar imágenes en android en la tarjeta SD o en SQL lite DB?
  • Android Studio tarda demasiado tiempo en ejecutar una aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.