这里有A、B两个android应用,我想在A应用中启动B应用,就是说我在A应用中设置一个按钮,我点击之后,系统运行B应用,这两个进程之间,该如何通信,又该怎样实现呢???求指点

解决方案 »

  1.   

    Android中程序与Service交互的方式——交互方式,各种方式都有涉及到,也适用于进程间通信。
    android里比较常用的是AIDL,你可以搜索相关资料
      

  2.   

    由A应用启动B,可以发Intent,调用startActivity(Intent),Intent指定相应的action即可。
    应用之间通信最简单的方式就是广播,sendBroadcast,都注册好指定的action广播。
    还有就是IPC,用到binder或者aidl,具体楼主可以去搜索相关例子代码,网上很多。
      

  3.   

    这是两个不同的android软件,我启动B应用必然要进入它的主Activity,我怎么启动它的主activity呢
      

  4.   

    Android里面的 AIDL进程通信 是通过底层的binder driver来实现的,比较复杂。
      

  5.   

    通过AIDL实现。
    在启动应用B的时候bind绑定应用A的服务,然后调用应用A的AIDL开放的函数
      

  6.   

    通过android:sharedUserId将两个应用运行在同一进程空间,就样就可以了
      

  7.   

    被调用的应用是不是你自己写的?
    被调用的应用是我自己的,写的,如果将两个应用放在同一进程空间,在其他方面会不会有什么影响,因为我想调用的并不仅仅只是两个应用,在A应用可以启动B应用,也可以启动C应用,甚至是D应用,应该怎么实现呢,有没有什么思路提供一下,
      

  8.   

    被调用的应用是不是你自己写的?
    被调用的应用是我自己的,写的,如果将两个应用放在同一进程空间,在其他方面会不会有什么影响,因为我想调用的并不仅仅只是两个应用,在A应用可以启动B应用,也可以启动C应用,甚至是D应用,应该怎么实现呢,有没有什么思路提供一下,
    仅仅是启动吗
      

  9.   

    被调用的应用是不是你自己写的?
    被调用的应用是我自己的,写的,如果将两个应用放在同一进程空间,在其他方面会不会有什么影响,因为我想调用的并不仅仅只是两个应用,在A应用可以启动B应用,也可以启动C应用,甚至是D应用,应该怎么实现呢,有没有什么思路提供一下,
    仅仅是启动吗
    应该是先启动吧,B应用被启动之后,那么B应用不就可以独立操作了吗
      

  10.   

    如果只是应用A启动应用B的话,直接intent就可以了。
    ComponentName cp=new ComponentName(B.packagename,B.classname);
    intent.setComponent(cp);
    startActivity(intent);