从最近的应用程序中删除该应用程序后,该服务将被终止。 但这不应被杀死并且始终在后台运行。 打开应用程序后,我看到该服务正在运行。通过主页按钮最小化应用程序时,它仍在运行。但是,如果我如上所述杀死它,它将停止。我该如何解决?
public class NotificationService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(getApplicationContext(),"service started",Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
Toast.makeText(getApplicationContext(),"service stopped",Toast.LENGTH_LONG).show();
}
@Override
public int onStartCommand(final Intent intent,
final int flags,
final int startId) {
onTaskRemoved(intent);
//code
return START_STICKY;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Intent myIntent = new Intent(getApplicationContext(), NotificationService.class);
myIntent.setPackage(getPackageName());
startService(myIntent);
super.onTaskRemoved(rootIntent);
}
}
我不希望任何服务通知,就像前台服务一样。
答案 0 :(得分:0)
我得到了答案,该应用程序的自动启动已关闭,因此一旦终止,该服务将无法重新启动。谢谢大家的时间!
答案 1 :(得分:0)
Direct quote from a blog that Google published:
为了不断改善用户体验,Android 平台对后台服务引入了严格的限制 从API级别26开始。基本上,除非您的应用程序在 前台,系统将停止您所有应用程序的后台服务 在几分钟之内。
您应该考虑使用WorkManager。 including samples, code-labs and blogs有很多有关如何使用它的资源。