2009-09-18 8 views

Répondre

2

Vous avez juste besoin de définir les options "System Module" et "Auto Start" dans les propriétés du projet dans le JDE blackberry. Cela va démarrer votre application sur le démarrage du téléphone.

0

Vous pouvez utiliser un mécanisme IPC (sorte de) pour échanger des données entre le "Service" et l'Application. Il y a deux façons d'y parvenir:

  1. net.rim.device.api.system.RuntimeStore a des méthodes pour mettre et obtenir un objet qui est identifié par un identifiant unique (long). Cet identifiant peut être généré depuis l'IDE JDE.
  2. net.rim.device.api.system.ApplicationManager possède des méthodes qui permettent d'afficher des événements globaux, qui peuvent échanger des données (encore une fois identifié par un identifiant unique). L'autre application devra implémenter GlobalEventListener et s'enregistrer avec le système - addGlobalEventListener.

Dans la première approche, l'autre entité n'est pas notifiée lorsque des données sont ajoutées à stocker.

2

Citation de How To - Write safe initialization code

Une application peut avoir besoin d'exécuter une fois automatiquement pendant le démarrage du système pour effectuer des routines d'initialisation telles que l'enregistrement des auditeurs et la récupération des informations de stockage persistant.

De telles routines ne doivent pas être exécutées tant que le système n'a pas terminé les tâches de démarrage principales telles que les contrôles de sécurité, l'établissement de la connectivité réseau et d'autres tâches.

Par conséquent, une application doit veiller à ce que le démarrage du système est terminée avant d'exécuter son propre code d'initialisation, comme le montre l'exemple suivant:

class MyApp implements SystemListener { 
    public static void main(String[] args) { 
     MyApp appInstance = new MyApp(); 
     // If system startup is still in progress when this 
     // application is run. 
     if (ApplicationManager.getApplicationManager().inStartup()) { 
      appInstance.addSystemListener(appInstance); 
     } else { 
      appInstance.doStartupWorkLater(); 
     } 
     appInstance.enterEventDispatcher(); 
    } 
    // constructs 
    MyApp() { 
    } 
    private void doStartupWorkLater() { 
     invokeLater(new Runnable() { 
      public void run() { 
       doStartupWork(); 
      } 
     }); 
    } 
    private void doStartupWork() { 
    }  
    // SystemListener 
    public void powerUp() { 
     removeSystemListener(this); 
     doStartupWork(); 
    } 
    // TODO: other SystemListener methods 
} 
Questions connexes