Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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
Android 如何理解安卓服务?_Android_Service - Fatal编程技术网

Android 如何理解安卓服务?

Android 如何理解安卓服务?,android,service,Android,Service,我是安卓新手,我对安卓服务感到困惑,根据我的理解,UI相关代码在活动中运行,后台工作在我自己的线程中运行,那个么,服务的用途是什么呢?似乎我可以使用活动和线程来做任何事情。后台工作可以而且应该在线程中运行。但是,如果该工作不是服务的一部分,那么如果应用程序的任何活动都不可见,操作系统可能会停止该线程而不发出警告 例如,如果您编写MP3播放器应用程序,您可能不希望在用户返回主屏幕时音乐停止。因此,如果你创建了一个能够播放音乐的服务,那么如果该服务正在运行,那么操作系统将试图避免终止你的应用程序进程

我是安卓新手,我对安卓服务感到困惑,根据我的理解,UI相关代码在活动中运行,后台工作在我自己的线程中运行,那个么,服务的用途是什么呢?似乎我可以使用活动和线程来做任何事情。

后台工作可以而且应该在线程中运行。但是,如果该工作不是服务的一部分,那么如果应用程序的任何活动都不可见,操作系统可能会停止该线程而不发出警告

例如,如果您编写MP3播放器应用程序,您可能不希望在用户返回主屏幕时音乐停止。因此,如果你创建了一个能够播放音乐的服务,那么如果该服务正在运行,那么操作系统将试图避免终止你的应用程序进程

服务还可用于为其他应用程序提供功能。在这种情况下,当其他应用程序希望使用该服务时,该应用程序的进程将按需启动,并且在其他应用程序完成该服务后,操作系统可能会停止该应用程序的进程


有关更多详细信息,请参阅。

后台工作可以而且应该在线程中运行。但是,如果该工作不是服务的一部分,那么如果应用程序的任何活动都不可见,操作系统可能会停止该线程而不发出警告

例如,如果您编写MP3播放器应用程序,您可能不希望在用户返回主屏幕时音乐停止。因此,如果你创建了一个能够播放音乐的服务,那么如果该服务正在运行,那么操作系统将试图避免终止你的应用程序进程

服务还可用于为其他应用程序提供功能。在这种情况下,当其他应用程序希望使用该服务时,该应用程序的进程将按需启动,并且在其他应用程序完成该服务后,操作系统可能会停止该应用程序的进程


有关更多详细信息,请参阅。

感谢您的回复,但是如果我在一个活动中启动一个线程,然后用户返回主屏幕,该线程将停止运行?该线程可能会继续运行一段时间,但如果应用程序要回收内存,操作系统将在不发出警告的情况下终止该应用程序。因为它没有可见的活动,也没有正在运行的服务,所以操作系统将该进程视为应用程序的缓存,可以在没有任何人关心的情况下清除它。请阅读以了解更多信息。感谢您的回复,但是如果我在一个活动中启动一个线程,然后用户返回主屏幕,该线程将停止运行?该线程可能会继续运行一段时间,但如果应用程序想要回收内存,操作系统将在没有警告的情况下终止该应用程序。因为它没有可见的活动,也没有正在运行的服务,所以操作系统将该进程视为应用程序的缓存,可以在没有任何人关心的情况下清除它。请阅读更多信息。