我有一个Android应用程序,需要在后台和一个单独的线程中执行工作。为了进行首次概念验证,我继承了Application类,在onCreate()方法内部创建了一个Thread来执行后台工作,这个方式非常有效。然而,我刚意识到,在过去我曾经使用Service来处理这样的情况。
问题是,在一个从Application.onCreate()生成的线程中执行工作,是否比在一个从Service生成的线程中执行工作更好?Service被设计用来执行"后台"工作(它使用UI线程除非使用了另外的线程),并且独立于Activity运行,即使没有Activity可见也可以运行。使用基于Application的线程似乎同样可以实现这一点。不使用服务可以减少复杂性,因为Activity只需访问Application singleton。据我所知,我不需要绑定到Service。
我会因为使用Service会防止生命周期的角落案例而被影响吗?这是我对这种方法唯一的关注点,但除此之外,我并不认为Service有什么好处。