终止应用后,启动的服务将被终止

时间:2019-11-11 21:26:48

标签: android android-service background-service

从最近的应用程序中删除该应用程序后,该服务将被终止。 但这不应被杀死并且始终在后台运行。 打开应用程序后,我看到该服务正在运行。通过主页按钮最小化应用程序时,它仍在运行。但是,如果我如上所述杀死它,它将停止。我该如何解决?

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);


    }


}

我不希望任何服务通知,就像前台服务一样。

2 个答案:

答案 0 :(得分:0)

我得到了答案,该应用程序的自动启动已关闭,因此一旦终止,该服务将无法重新启动。谢谢大家的时间!

答案 1 :(得分:0)

Direct quote from a blog that Google published

  

为了不断改善用户体验,Android   平台对后台服务引入了严格的限制   从API级别26开始。基本上,除非您的应用程序在   前台,系统将停止您所有应用程序的后台服务   在几分钟之内。

您应该考虑使用WorkManager。 including samples, code-labs and blogs有很多有关如何使用它的资源。