Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以在单独的进程上启动IntentService吗? 是否可以在一个单独的流程上启动?怎么用?如果是,是否强制约束它 是否可以在一个单独的流程和 android:isolatedProcess和android:process之间有什么区别?见:_Android_Android Service - Fatal编程技术网

您可以在单独的进程上启动IntentService吗? 是否可以在一个单独的流程上启动?怎么用?如果是,是否强制约束它 是否可以在一个单独的流程和 android:isolatedProcess和android:process之间有什么区别?见:

您可以在单独的进程上启动IntentService吗? 是否可以在一个单独的流程上启动?怎么用?如果是,是否强制约束它 是否可以在一个单独的流程和 android:isolatedProcess和android:process之间有什么区别?见:,android,android-service,Android,Android Service,1) 是否可以在单独的流程上启动IntentService?怎么用?如果是,是否强制约束它 是的,您可以在单独的流程中启动IntentService。只需向该服务的清单条目添加android:process=“:which” 不,你不必拘泥于此。您可以使用startService() 2) 是否可以在单独的进程上启动IntentService并在前台运行 是(见上文)。要使您的服务在前台运行,它可以随时调用startForeground()。服务本身控制着它是在前台还是后台运行 3) andro

1) 是否可以在单独的流程上启动
IntentService
?怎么用?如果是,是否强制约束它

是的,您可以在单独的流程中启动
IntentService
。只需向该服务的清单条目添加
android:process=“:which”

不,你不必拘泥于此。您可以使用
startService()

2) 是否可以在单独的进程上启动IntentService并在前台运行

是(见上文)。要使您的服务在前台运行,它可以随时调用
startForeground()
。服务本身控制着它是在前台还是后台运行

3)
android:isolatedProcess
android:process
之间有什么区别?见:

android:process
允许您控制每个特定组件在哪个进程中运行(通过指定进程名称)。您可以将应用程序的组件分组以在单独的流程中运行(例如,一个流程中的所有UI组件和另一个流程中的所有服务)。默认行为是应用程序的所有组件在同一进程中运行


android:isolatedProcess
是一个标志(true/false),如果您希望特定服务组件在与应用程序其余部分隔离的单独进程中运行,则可以设置该标志。隔离进程没有授予应用程序其余部分的任何权限。通常,权限被授予应用程序,应用程序的所有组件都具有应用程序获得的所有权限<代码>android:isolatedProcess仅从API级别16(Jellybean)开始提供。请参阅和

使用额外的进程不是一个好主意,因为它会浪费RAM和CPU,通常对用户没有任何好处。@Commonware:收到,先生!在任何情况下,您是否建议使用单独的流程?通常,多个流程都是浪费的。但是,我可以想到一些它们有用的情况:1)您需要的内存比单个进程所能获得的内存更多,因此您可以将应用程序拆分为多个进程,因为每个进程都有内存限制。2) 你有一个需要一直运行的服务和一个不需要的大用户界面——你把用户界面放在一个进程中,安卓可以在不需要的时候关闭这个进程,而把服务放在另一个进程中,这个进程可以一直运行(这实际上是更好地使用RAM/CPU).3)您的应用程序的一部分是稳定的,另一部分是不稳定的/有缺陷的,或存在问题,或从某个网站下载-您在一个进程中运行稳定的代码,在另一个进程中运行其他内容,因此,当片状代码崩溃时,它不会带走稳定的部分。@DavidWasser:欢迎你引用关于原因2的证据#对于慢速、低内存移动设备IMHO上的第二个进程,3是不充分的理由。我承认#1适用于Android 1.x/2.x,但是
Android:largeHeap
是为API级别11或更高添加的,目的是在不需要另一个进程的情况下为您提供更多堆空间,太多开发人员认为“哦,给我更多堆”是低效编码的解决方案。谢谢David。不知道隔离进程。@HowardHodson isolatedProcess仅可从Jellybean(4.1)获得。对隔离进程的一个小小补充:它不仅缺少应用程序的android权限,而且只能访问世界可读文件,这特别意味着它无法访问应用程序的文件。