在api-26中运行无尽服务,而无需通知或JobScheduling

时间:2019-05-27 11:55:10

标签: android service android-8.1-oreo

我想在api-26及更高版本上提供无尽的后台服务,但是我的应用结束后,Android一分钟后会自动终止我的后台服务。

我的应用程序是一个家长控制应用程序,我需要在后台运行服务,但我无法显示任何通知,也不应该出现在最近的应用程序列表中。我不想使用任何作业调度方法。在api-26及更高版本上,Android使用
service limitation rules,并自动关闭后台服务。我认为有一种方法可以阻止android的限制,因为Instagram,Whatsapp,Telegram和...具有后台服务,而android不会终止这些服务。

public class MainService extends Service
{
private static final String TAG = "InfService";

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    Log.d(TAG, "onStartCommand: ");
    return START_STICKY;
}

@Override
public void onDestroy()
{
    Log.d(TAG, "onDestroy: ");
    super.onDestroy();
    sendBroadcast(new Intent(this, ServiceRestartReceiver.class));
}

@Override
public IBinder onBind(Intent intent)
{
    return null;
}
}  




public class ServiceRestartReceiver extends BroadcastReceiver
{
private static final String TAG = "ServiceRestartReceiver";

@Override
public void onReceive(Context context, Intent intent)
{
    Log.d(TAG, "onReceive: ");
    context.startService(new Intent(context, MainService.class));
}
}

我使用BroadcastReceiver并且上面的代码在api <26上工作正常,但是在api> = 26上,android杀死了后台服务。
我该怎么办?

0 个答案:

没有答案