作为问题标题所问,我想知道它们的区别是什么,因为文件不太清楚它们是否真的有区别。
谢谢。
谢谢。
ContextCompat
是用于兼容性的实用程序类。
context.startForegroundService
在Android Oreo(API 26)中引入,是启动前台服务的正确方式。在Android Oreo之前,您必须调用startService
,而这就是ContextCompat.startForegroundService
所做的。在API 26之后,它将调用context.startForegroundService
,否则将调用context.startService
。
ContextCompat
API 27源代码中的代码。
/**
* startForegroundService() was introduced in O, just call startService
* for before O.
*
* @param context Context to start Service from.
* @param intent The description of the Service to start.
*
* @see Context#startForegeroundService()
* @see Context#startService()
*/
public static void startForegroundService(Context context, Intent intent) {
if (Build.VERSION.SDK_INT >= 26) {
context.startForegroundService(intent);
} else {
// Pre-O behavior.
context.startService(intent);
}
}