2015-04-20 4 views
-1

J'ai une question à propos de Android Receiver. Je suis possible de changer l'application Système. B est la première application, lorsque l'utilisateur allume l'alimentation. Mais le problème est lorsque l'utilisateur choisit le mode FACTORY (comme la langue de réglage, google id ...), B App doit commencer à terminer un paramètre App. C'est pourquoi utiliser android: enabled = "false" et A application déclencheur App. Mais ne fonctionne pas.Comment désactiver/activer le récepteur Android dans le code source?

Je pense que "android.intent.action.BOOT_COMPLETED" envoyer juste une fois après le démarrage, donc après avoir changé activer l'application récepteur B, cela ne fonctionne pas. Est ce bien? S'il vous plaît pouvez-vous me donner quelques conseils?

Une application

PackageManager pm = getPackageManager(); 
ComponentName compName = new ComponentName("com.test.myapp", "com.test.myapp.receiver"); 
pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0); 

B App AndoidManifest.xml

<receiver 
    android:name="com.test.myapp.receiver" 
    android:enabled="false"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

B App

public void onReceive(Context context, Intent intent) { 
    if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())){ 
     Intent startMainActivityIntent = new Intent(context, new.class); 
     startMainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(startMainActivityIntent); 
} 
+0

Vous pouvez utiliser la méthode par défaut 'registerReceiver()' & 'deregisterReceiver'. Pour plus d'informations, voir ceci: http://stackoverflow.com/questions/4134203/how-to-use-registerreceiver-method – astuter

Répondre

0

Pourquoi ne pas commencer juste application B de l'application A directement? Oui, le démarrage terminé déclenché qu'une seule fois. Mais vous pouvez démarrer l'application B sans aucun récepteur, look here for example