Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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
Java 服务和单实例之间的区别?_Java_Android_Android Service - Fatal编程技术网

Java 服务和单实例之间的区别?

Java 服务和单实例之间的区别?,java,android,android-service,Java,Android,Android Service,我正在开发一个android应用程序,想知道以startService()启动的服务与执行我在startService()中输入的相同代码的单例类之间的区别 因此,例如,如果我有一个VideoRecordingService服务设置用于在启动时从相机录制视频,和一个CameraRecorderClasssingleton类,它有一个StartRecording()方法也从相机录制视频,它们有什么区别? 它们都与任何活动生命周期无关,并且都使用主线程来完成工作 谢谢这项服务主要是在您想做一些后台操

我正在开发一个android应用程序,想知道以
startService()
启动的服务与执行我在
startService()中输入的相同代码的单例类之间的区别

因此,例如,如果我有一个
VideoRecordingService
服务设置用于在启动时从相机录制视频,和一个
CameraRecorderClass
singleton类,它有一个
StartRecording()
方法也从相机录制视频,它们有什么区别? 它们都与任何活动生命周期无关,并且都使用主线程来完成工作


谢谢

这项服务主要是在您想做一些后台操作时使用的。例如:-在应用程序中播放音乐。所以,若你们并没有任何活动,你们可以使用这个服务来播放音乐

而如果您关闭应用程序/活动,您的单例实例将无法工作,除非您在某个后台任务中执行它。此外,如果由于某种原因导致服务被终止时,您从
onStartCommand
返回
START\u STICKY
,服务将自动重新启动


所以,在您的情况下,如果您真的想做一些长时间的后台运行操作,那么最好使用服务而不是单例实例。

服务主要用于您想做一些后台操作的时候。例如:-在应用程序中播放音乐。所以,若你们并没有任何活动,你们可以使用这个服务来播放音乐

而如果您关闭应用程序/活动,您的单例实例将无法工作,除非您在某个后台任务中执行它。此外,如果由于某种原因导致服务被终止时,您从
onStartCommand
返回
START\u STICKY
,服务将自动重新启动


所以,在您的情况下,如果您真的想做一些长时间的后台运行操作,那么最好使用服务而不是单例实例。

服务主要用于您想做一些后台操作的时候。例如:-在应用程序中播放音乐。所以,若你们并没有任何活动,你们可以使用这个服务来播放音乐

而如果您关闭应用程序/活动,您的单例实例将无法工作,除非您在某个后台任务中执行它。此外,如果由于某种原因导致服务被终止时,您从
onStartCommand
返回
START\u STICKY
,服务将自动重新启动


所以,在您的情况下,如果您真的想做一些长时间的后台运行操作,那么最好使用服务而不是单例实例。

服务主要用于您想做一些后台操作的时候。例如:-在应用程序中播放音乐。所以,若你们并没有任何活动,你们可以使用这个服务来播放音乐

而如果您关闭应用程序/活动,您的单例实例将无法工作,除非您在某个后台任务中执行它。此外,如果由于某种原因导致服务被终止时,您从
onStartCommand
返回
START\u STICKY
,服务将自动重新启动


因此,在您的情况下,如果您真的想做一些长时间的后台运行操作,那么最好使用服务而不是单例实例。

当使用
startService
时,它会创建该类的一个新实例,它可以有一个上下文,并执行
服务
类继承的一系列操作。您可以在应用程序中具有上下文的任何位置创建此服务,并且可以多次启动和停止它(使用
startService
stopSelf

对于单例类,它是一个静态对象,您只能有一个实例(除非您想创建更多实例)。静态对象可能没有太大的不同,但是它没有上下文和类附带的所有好的android东西(除非您向它传递上下文或任何您可能需要的东西)

服务也可以运行,而无需通过使用活动或显示UI来调用它,它可以在后台运行而无需UI,并且可以使用广播侦听器启动而无需中断用户,只要服务正在运行,系统就不应自动关闭服务,而不是在单例中启动异步任务,然后关闭活动并销毁活动


可能还有更多。但是您必须了解dalvik..

当使用
startService
时,它会创建该类的一个新实例,它可以有一个上下文并执行
服务
类继承的一系列操作。您可以在应用程序中具有上下文的任何位置创建此服务,并且可以多次启动和停止它(使用
startService
stopSelf

对于单例类,它是一个静态对象,您只能有一个实例(除非您想创建更多实例)。静态对象可能没有太大的不同,但是它没有上下文和类附带的所有好的android东西(除非您向它传递上下文或任何您可能需要的东西)

服务也可以运行,而无需通过使用活动或显示UI来调用它,它可以在后台运行而无需UI,并且可以使用广播侦听器启动而无需中断用户,只要服务正在运行,系统就不应自动关闭服务,而不是在单例中启动异步任务,然后关闭活动并销毁活动


可能还有更多。但是您必须了解dalvik..

当使用
startService
时,它会创建该类的一个新实例,它可以有一个上下文并执行
服务
类继承的一系列操作。您可以在a中的任何位置创建此项