android - 安卓两个app之间如何通信
ringa_lee
ringa_lee 2017-04-18 09:14:32
0
9
976

有两个 app 之间需要一次通信,只需要一次,所以我想着用 broadcast。

App A 发一个 broadcast 给 app B,然后 B 需要 start 一个 activity,但 A 还需要等 B 结束这个 activity 之后才能执行下一步。

所以 B 在结束 activity 之后需要让 A 知道,我不确定是还需要从 B 给 A 发一个 broadcast 么?还是有没有什么比较简单的方法,不确定这样互相发送 broadcast 是不是最好的方法。

ringa_lee
ringa_lee

ringa_lee

répondre à tous(9)
阿神

Je ne suis pas sûr du scénario d'application spécifique. C'est juste que les composants correspondants sont démarrés entre deux applications et que le transfert de données est toujours requis. Selon votre description, l'application A doit lancer activement l'application B. Vous pouvez. essayez d'utiliser la fonction cachée d'Activity. Démarrez-la pour voir si le problème peut être résolu :

1. 在APP B中可被调起的Activity 定义好intent-filter,action,data,category...以便可以被隐式启动;
2. 在APP A中根据APP B 里需要被隐式启动的Activity的intent-filter,封装好intent并startActivityForResult(...),在onActivityResult中等待从APP B返回的结果,进行下一步处理
3. 在APP B 中被调用的Activity里setResult()设置处理结果.
PHPzhong

Il est recommandé de se référer au deuxième chapitre de « Android Art Development Exploration », qui contient une introduction détaillée à la communication entre les processus.

巴扎黑

Cela dépend des spécificités. Si les deux programmes sont indépendants et incontrôlables, comme QQ et WEIBO, et que vous n'êtes pas sûr que les utilisateurs les démarreront en même temps, le meilleur moyen est de créer une interface publique.

伊谢尔伦

Utilisez aidl directement pour communiquer entre les applications, c'est un jeu d'enfant

大家讲道理

Si vous ouvrez simplement une autre activité, vous pouvez personnaliser l'URI de l'application. Pour plus de détails, voir les schemeattributs

.

Si vous avez besoin d'une communication inter-applications plus spécifique, vous pouvez utiliser aidl

De même, il existe des services utilisant des services comme relais ou utilisant des mécanismes de diffusion

Il est recommandé d'utiliser aidl

PHPzhong

http://blog.csdn.net/github_3... introduction détaillée

阿神

Comme l'a dit @wangxw725, c'est la méthode fiable. La fiabilité de l'utilisation de la diffusion est trop faible. Que se passe-t-il si l'une des activités passées en arrière-plan est recyclée par le système ? Par conséquent, il est préférable d'utiliser l'intention implicite. comment

Peter_Zhu

La communication inter-processus peut être réalisée avec l'aide de l'AIDL

刘奇

Tout le monde ci-dessus est génial, mais ce n'est pas l'utilisation de startActivityForResult()?
A appelle directement la page de B. Si la page cible n'est pas pratique à exposer, écrivez une page intermédiaire pour gérer spécifiquement ce type d'appel. . Puis traitement onActivityResult ().

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal