gpt4 book ai didi

android - 重新开始 已经在运行服务?

转载 作者:行者123 更新时间:2023-11-29 00:41:08 26 4
gpt4 key购买 nike

我有一个名为 PACKAGE_ADDED 的广播接收器监听,还有一个名为 BOOT_COMPLETED 的广播接收器监听。 bootcompleted 广播接收器启动我的服务。安装新应用程序后,我想向我的服务发送消息。我想到的第一个解决方案是用

intent.setAction("NEW_APP_INSTALLED"); 
startService(intent);

不停止服务并检查 service.onStart() 方法中的 intent.getAction() 值。如果结果是 NEW_APP_INSTALLED,则调用 newAppInstalled()。我认为这不是一个优雅的解决方案。

重复启动服务有问题吗?当我的 Activity 在获取数据时通过 ipc(aidl) 绑定(bind)到它并且新安装的广播接收器再次启动它时会发生什么?最后,解决我的问题的最佳方法是什么?

最佳答案

Is starting the service again and again problem?

Lastly what is the best way to solve my problem?

您可以在已运行的服务上调用 startService。你可以按照你建议的方式去做,也可以有两种不同的服务(一种用于启动,一种用于 new_app),或者你可以在服务启动后注册一个 BroadcastReceiver ,但那不是有效,因为如果您尝试向它发送消息但它尚未运行,它将不会收到消息。我更喜欢您建议的一项服务并使用 startService

And what happens when my activity bind it via ipc (AIDL) fetching dataand new app installed broadcast receiver starts it again?

嗯,我对 AIDL 一无所知,真的。 This可能有帮助。该页面确实声明“大多数应用程序不应使用 AIDL 来创建绑定(bind)服务”。这是因为它需要多线程并使其更加复杂。

如果我的回答未能令您满意,请告诉我 - 虽然我无法具体详细说明 AIDL,因为我对此一无所知。

关于android - 重新开始 已经在运行服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com