gpt4 book ai didi

android - 多个服务共享一个进程,多少个 "main"线程?

转载 作者:太空狗 更新时间:2023-10-29 13:35:40 25 4
gpt4 key购买 nike

假设我有两个共享相同用户 ID 和相同进程的应用程序,通过在它们的 AndroidManifest.xml 中声明:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.appname1"
android:sharedUserId="com.myapp.sharedUserId">

<application android:process="com.myapp.sharedProcess">
...
...

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.appname2"
android:sharedUserId="com.myapp.sharedUserId">

<application android:process="com.myapp.sharedProcess">
...
...

如果每个应用程序都定义了一个服务并且两者同时运行,尽管它们在同一个进程下运行,它们是否会为每个应用程序获得一个“主”线程?或者他们也共享一个“主”线程?

任何启发将不胜感激。谢谢!

最佳答案

每个 list 不能有多个应用程序。两个应用程序通常不能共享同一个进程,但您可以使用 android:process 属性覆盖它(见下文)。

此外,Service 中的代码与应用程序中的 Activity 在同一线程中运行,即 UI 线程。

如果您在同一个应用程序中有多个服务,它们与应用程序在同一个进程中,都在同一个线程上。

要解决这个问题,您可以为应用程序指定进程名称,并为服务指定进程名称。请参阅 android:process 属性。

这将为每个服务提供一个单独的线程,因为每个进程当然都有自己的线程。

但是,根据您使用服务的目的,您可能更愿意拥有多个 IntentService 类。它们都在与您的应用相同的进程中运行,但它们每个都有自己的线程,这与 UI 线程不同。

当然,您也可以为同一个服务手动编写多个线程,但这很难正确实现。

关于android - 多个服务共享一个进程,多少个 "main"线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952296/

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