我想在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杀死了后台服务。
我该怎么办?