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 ..
- Cómo forzar el uso máximo de la CPU
- Android: rendimiento lento con una gran imagen en ImageView
- Android HTTP Publicar en una URL sin parámetros
- Api de rendimiento de Android nivel 11 y superior
- Androide. ¿Cómo mejorar el rendimiento de Eclipse para proyectos con muchos recursos?
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
- ¿Cómo mejorar el rendimiento de google lugares autocompletar sugerencias?
- Alto uso de la CPU con el emulador de Android (qemu-system-i386.exe)
- Causa de la recursividad de los recorridos de travesía, tiempos de conmutación del buffer de egl largo
- La notificación con setGroupSummary (true) no está visible en Android N
- Cómo medir FPS en Android durante el desarrollo de aplicaciones
- ¿La codificación dura de la cadena afecta el rendimiento?
- Desplazamiento rápido personalizado pulgar
- ¿Cómo puedo mejorar el rendimiento (primer tiempo de carga, suavidad de desplazamiento) de un GridView que representa muchas imágenes grandes?
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 .
- Ubicación de Google Play No conectado. Llame a connect () y espere a que onConnected () se llame
- ¿Hay algún error en el código de ejemplo de Google Glass LiveCard en las Guías para desarrolladores?