спасибо всем за чтение.Вот приложение с загрузочным приемником, поэтому оно запускается при запуске устройства Android:
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i1 = new Intent(context, SplashActivity.class);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i1.putExtra("permission_for_service","");
context.startActivity(i1);
}
SplashActivity.class реализован для получения разрешений перед запуском MainActivity.class.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!checkAllRequestedPermissions()) {
ActivityCompat.requestPermissions(this, allRequestedPermissions, MY_PERMISSIONS_REQUEST);
}
else {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
private boolean checkAllRequestedPermissions() {
for (String permission : allRequestedPermissions) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
ЧтоЯ пытаюсь сделать так, чтобы предотвратить запуск пользовательского интерфейса при загрузке, используя вместо этого службу:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (!checkAllRequestedPermissions()) {
ActivityCompat.requestPermissions(this, allRequestedPermissions, MY_PERMISSIONS_REQUEST);
} else {
if (getIntent().hasExtra("permission_for_service")) {
//service init
if (!isServiceRunning(SchedulerService.class)) {
startService(new Intent(this, SchedulerService.class));
}
finish();
} else {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
}
К сожалению, это вылетает на BOOT_COMPLETE.Любые идеи о том, как заставить это работать?Спасибо миллион