Java 需要多应用程序IPC的指导吗

Java 需要多应用程序IPC的指导吗,java,android,ipc,Java,Android,Ipc,我在这里真正想要的是一点指导。我正在尝试创建我的第一个官方android应用程序。我不熟悉java/droid,但不熟悉编程。在过去的一个月里,我创建了很多小实验活动、服务、线程等等,它们都按计划运行。所以现在我试着把这一切联系在一起,但运气不太好 在一个新的项目中,我将guts编译成了“my.main.package”,它运行一个不断处理数据的服务,其他客户端/应用程序可以使用这些数据……这就是我的计划。例如,在这个服务中有一个定制的线程/循环计时器,它不断地计数。对于任何其他应用程序来说,什

我在这里真正想要的是一点指导。我正在尝试创建我的第一个官方android应用程序。我不熟悉java/droid,但不熟悉编程。在过去的一个月里,我创建了很多小实验活动、服务、线程等等,它们都按计划运行。所以现在我试着把这一切联系在一起,但运气不太好

在一个新的项目中,我将guts编译成了“my.main.package”,它运行一个不断处理数据的服务,其他客户端/应用程序可以使用这些数据……这就是我的计划。例如,在这个服务中有一个定制的线程/循环计时器,它不断地计数。对于任何其他应用程序来说,什么样的方式才能像监听器在自己的沙箱中一样,以尽可能少的方式获取计时器和其他数据的恒定反馈

我假设必须为IPC实现aidl,但我不确定它是否需要和/或必要,因为我的.main.package中的数据只是传出的,即其他应用程序只需要接收/侦听。我知道需要某种形式的邮件处理或包裹编组,以及aidl可能的权限,但我开始认为编码/解码包裹或每毫秒发送一封邮件将非常繁重。aidl是唯一的方法还是有一种方法可以按照您的意愿广播数据

任何帮助都将不胜感激

在一个新的项目中,我将guts编译成“my.main.package”,它运行一个不断处理数据的服务,其他客户端/应用程序可以使用该服务

只有当服务主动向用户提供价值时,服务才应该运行。用户认为,那些创建一直运行的服务的开发人员是白痴,他们用任务杀手、设置应用程序的强制停止等攻击他们的应用程序

也许你的描述只是对你的应用程序进行了粗略的描述,但“一个不断处理数据的服务”是一种反模式。这些是手机和平板电脑,而不是服务器

对于任何其他应用程序来说,什么样的方式才能像监听器在自己的沙箱中一样,以尽可能少的方式获取计时器和其他数据的恒定反馈

对他们来说,最好的办法是首先不要成为单独的应用程序

例如,在这个服务中有一个定制的线程/循环计时器,它不断地计数

这不会给用户增加价值

我假设必须为IPC实现aidl,但我不确定它是否需要和/或必要,因为我的.main.package中的数据只是传出的,即其他应用程序只需要接收/侦听

使用AIDL的远程服务是实现IPC的一种方法。这不是唯一的办法。这甚至不是最常见的方式。您还可以:

  • 发送广播
    Intent
  • 让客户端向服务发送
    信使
    ,服务通过该
    信使向客户端发送消息
  • 让服务更新
    ContentProvider
    ,让客户端在
    ContentProvider
    上注册
    ContentObserver
我知道需要某种形式的邮件处理或包裹编组,以及aidl可能的权限,但我开始认为编码/解码包裹或每毫秒发送一封邮件将非常繁重


IPC通常“非常累人”。因此,应尽可能避免使用IPC。

事实上,我认为,使用AIDL的IPC是满足您需求的唯一且最有效的方法。如果你需要一个演示,你可以看看。这是一个简单的例子,我写的学习AIDL&Binder在Android上。希望它能为您提供一些启动的简要说明。

该服务仅在需要/调用时运行,并且有一个操作该服务的活动,因此它不会全天候运行。我可能是java新手,但我不是白痴;至于计时器,尽管不可想象,但对于本项目而言,它具有重要价值。至于我的问题,在你的帖子之后,我重新审视了广播,意识到这正是我想要的,我希望它能成为!在我之前看到的所有示例中,它们总是用于触发事件等,而不是传递原始数据类型。所以我已经实现了广播,它工作得非常好!谢谢你的回复!你好!欢迎来到堆栈溢出!“仅链接”的答案在这里是不受欢迎的,如果你能引用链接的材料来形成你的大部分答案,那将是最好的。