J'ai une méthode appelée Maintenant la façon dont je suis à l'aide de cette méthode: P> hostphoto () code>; Il télécharge essentiellement une image sur un site et récupère un lien.
J'ai ensuite une autre méthode pour poster le lien vers un site Web.
String link; new Thread(){
@Override
public void run(){
HostPhoto photo = new HostPhoto(); //create the host class
link= photo.post(filepath); // upload the photo and return the link
Log.i("link:",link);
}
}.start();
5 Réponses :
Je suppose que vous êtes (ou devrait être) à l'aide d'un fil séparé pour accomplir de manière asynchrone. P>
Vous devez placer le Généralement, je l'ai fait avec AsynccTask avec Android .. . p>
Ceci vous fournit le rappel post () code> dans un rappel appelé lorsque
hostphoto () code> est terminé. P>
onpostexecute () code> que vous pouvez faire votre message
post () code> à l'intérieur. P>
Vous pouvez utiliser AsynccTask ici,
AsynccTask p>
En utilisant que vous pouvez exécuter le code de p>
dans doInbackground () puis exécutez le code de p> dans la méthode Onpostexecute (), la meilleure solution pour vous. P> Vous pouvez écrire le code dans ce motif p> et le peut l'exécuter à l'aide de p> hostphoto () code> p>
post (texte + "" + lien); code> p>
Hé, merci pour votre réponse. Après avoir effectué votre méthode, je reçois une erreur.check Out HTE Mise à jour question ci-dessus
Fonctionne enfin! Le problème était le fil au sein de l'hostphoto (), quelqu'un pourrait-il me fournir une explication pourquoi ce fil aurait causé cela?
à votre deuxième question: p>
Quelqu'un pourrait-il me fournir une explication pourquoi ce fil aurait causé cela? P> blockQuote>
Vous appelez
"link = photo.post (FilePath);" qui fonctionne sur un nouveau fil. Alors que cette méthode est toujours en cours d'exécution, la liaison est toujours nulle et votre thread actuel (fil principal) continue de fonctionner avec ce lien (null à cette époque) strong> p> Dans cette situation, vous devez attendre le résultat, alors laissez le nouveau thread exécuter la méthode et, après avoir terminé, ce thread demandera au fil principal de mettre à jour le résultat (par un rappel ou un gestionnaire), tous ces travaux sont Bien encapsulé par Android AsyncCTTK P>
Vous devriez publier plus de code, en particulier le contenu de
hostphoto () code>, car le comportement que vous décrivez est non standard.
Un
asyncktask code> ne résout pas ce problème depuis
hostphoto () code> ne bloque même pas le fil. Comme ATC mentionné, vous devez poster du code de
hostphoto () code>.
Le code d'hostphoto a été mis à jour
Mise à jour 2: Fonctionne enfin! Le problème était le fil au sein de l'hostphoto (), quelqu'un pourrait-il me fournir une explication pourquoi ce fil aurait causé cela? Merci à tous ceux qui ont répondu.