Android onActivityResult JAMAIS appelé

ma méthode onActivityResult n'est jamais appelée. suis avec android 2.2

Je suis à l'aide d'un Tabhost, où TabHosts contenir TabGroups qui contiennent des Activités individuelles.

Une de mes activité individuelle exécute intention

 Intent intent = new Intent(); 
 intent.setType("image/*");
 intent.setAction(Intent.ACTION_GET_CONTENT);
 startActivityForResult(Intent.createChooser(intent,
                    "Select Picture"), 0);

cette charge ma galerie d'applications, j'ai utiliser la valeur par défaut d'android galerie de sélectionner une image et quand je reviens à mon onActivityResult n'est pas appelé mon activité.

Ça ressemble à ça - et j'ai mis un point d'arrêt à if(resultCode == 0) , donc, pour l'instant, la logique de mon onActivityResult ne devrait pas d'importance

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == 0) {
        if (requestCode == 0) {
            Uri selectedImageUri = data.getData();

            //OI FILE Manager
            filemanagerstring = selectedImageUri.getPath();

            //MEDIA GALLERY
            selectedImagePath = getPath(selectedImageUri);

            //DEBUG PURPOSE - you can delete this if you want
            if(selectedImagePath!=null)
                System.out.println(selectedImagePath);
            else System.out.println("selectedImagePath is null");
            if(filemanagerstring!=null)
                System.out.println(filemanagerstring);
            else System.out.println("filemanagerstring is null");

            //NOW WE HAVE OUR WANTED STRING
            if(selectedImagePath!=null)
                System.out.println("selectedImagePath is the right one for you!");
            else
                System.out.println("filemanagerstring is the right one for you!");
        }
    }
}

Du cycle de vie des fonctions sont souvent appelés à sortir de l'ordre et de façon intermittente pour les Activités à l'intérieur d'un tabhost/tabgroup, donc j'ai vérifié pour voir ce que le cycle de vie de fonctions SONT appelés après que la galerie de la ferme (ce qui arrive dès que je sélectionne une image dans la galerie android)

Le seul à être appelé est le onResume() dans mon TabHost activité. J'ai donc essayé de mettre exactement la même onActivityResult() méthode dans mon TabHost classe AINSI QUE les TabActivity classe. Avec un point d'arrêt dans le même emplacement au début de la méthode.

Aucune de ces classes sont appelées.

Je dessine un vide maintenant, comment puis-je obtenir le résultat de l'application galerie dans mon application si aucun des construit dans la réception des méthodes de se répondre à elle.

Depuis que je sais que mon principal TabHost obtient le onResume() appelé, j'ai essayé d'ajouté Intent graphics = getIntent(); pour voir si elle allait recevoir des données à partir de la galerie de sélection, il ne le fait pas, donc je ne vois pas comment je peut faire de la logique dans le onResume() la méthode soit.

Solutions de bienvenue! 🙂

Êtes-vous sûr que vous avez onActivityResult dans la même activité, c'est l'appel de startActivityForResult(..) ?
Il est, j'ai également ajouté dans la tabgroup et tabactivity pages avec des points d'arrêt pour voir si l'un d'entre eux sont appelés à tous. Ironiquement, il dit qu'il va lancer une ActivityNotFoundException si il ne s'appelle pas correctement, et cela ne fonctionne pas 🙁 il s'agit tout simplement de ne pas être appelé
Juste pour le plaisir avez-vous essayé de créer un projet de test et une simple copie de votre intention avec le onActivityResult que vous avez dans le code ci-dessus pour vous assurer qu'il fonctionne alors. Si cela ne fonctionne pas alors. Quelque chose est funky avec votre téléphone/émulateur. Si cela fonctionne, quelque chose est en train d'être négligé dans votre code ou de l'activité que vous appelez n'est pas l'appel de setResult(..) correctement
J'ai posté ma solution.

OriginalL'auteur CQM | 2011-10-18