blackberry java-me

blackberry - La aplicación no se puede eliminar cuando tiene múltiples puntos de entrada



java-me (1)

EDITAR: usar un código más simple. Tengo una aplicación Blackberry que hasta hace poco (actualicé a 6.0.0.600 en mi linterna) podría eliminarse. Ahora no puedo incluso si uso javaloader -u erase (módulo en uso) y el menú contextual de UI o menú físico no tiene opción para eliminar. El siguiente código solo requiere un descriptor de aplicación con un punto de entrada alternativo al inicio con los parámetros "startVibrate". El código de los puntos de entrada está debajo.

package mypackage; import net.rim.device.api.system.Alert; import net.rim.device.api.system.ApplicationDescriptor; import net.rim.device.api.system.ApplicationManager; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.UiApplication; /** * This class extends the UiApplication class, providing a * graphical user interface. */ public class ScheduleAppDemo extends UiApplication { public static void main(String[] args) { if (args != null && args.length > 0 && "startVibrate".equals(args[0])) { scheduleVibrate(); } else { ScheduleAppDemo app = new ScheduleAppDemo(); app.enterEventDispatcher(); } } public ScheduleAppDemo() { ScheduleAppDemoScreen screen = new ScheduleAppDemoScreen(); pushScreen(screen); } public class ScheduleAppDemoScreen extends MainScreen { public ScheduleAppDemoScreen() { setTitle("Schedule app demo"); } } private static void scheduleVibrate() { Alert.startVibrate(2550); ApplicationDescriptor current = ApplicationDescriptor. currentApplicationDescriptor(); current.setPowerOnBehavior(ApplicationDescriptor.DO_NOT_POWER_ON); ApplicationManager manager = ApplicationManager.getApplicationManager(); manager.scheduleApplication(current, System.currentTimeMillis() + 60000, true); } }

Básicamente lo que esto te muestra es que vibra a cada minuto. Lamentablemente, la evidencia dice que parece que el Administrador de aplicaciones mantiene el proceso en segundo plano en ejecución durante el tiempo y luego simplemente lo llama nuevamente cuando es el momento de volver a ejecutar. Esta es la aplicación de muestra de RIM. La eliminación de todos los puntos de entrada alternativos en el descriptor.xml de la aplicación permite que se elimine la aplicación. Además de modificar eso, volver a cargar los bacalaos y luego eliminarlos; ¿Cómo puedo eliminar la aplicación?


El comportamiento es "correcto", en la medida en que esta es exactamente la forma en que una aplicación con un punto de entrada alternativo se comportaría en el campo.

Cuando una aplicación tiene un punto de entrada alternativo, al eliminarla solo se marca para su eliminación. La eliminación real ocurre cuando el dispositivo se reinicia y los .cods se vuelven a cargar.

Esta es la razón por la cual, cuando un usuario intenta eliminar una aplicación que tiene un punto de entrada alternativo con un proceso en ejecución en segundo plano, siempre aparece un cuadro de diálogo que le informa al usuario que la aplicación se eliminará al reiniciarse y preguntando si lo haría. gustaría reiniciar ahora.

Hasta que el dispositivo se reinicie, el proceso en segundo plano continuará ejecutándose.