Начать действие в onReception для загрузки завершенного BroadcastReceiver в ОС Android 9 - PullRequest
0 голосов
/ 15 марта 2019

Действие не начнется с приемника широковещательной передачи onReceive завершения загрузки, даже с использованием Intent.FLAG_ACTIVITY_NEW_TASK не помогает, и все еще из-за той же ошибки.

Причина: android.util.AndroidRuntimeException: Вызов startActivity() вне контекста Activity требуется флаг FLAG_ACTIVITY_NEW_TASK.Вы действительно этого хотите?

public void onReceive(Context context, Intent intent) {
super.onReceive(context,intent);
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) || 
  intent.getAction().equals(Intent.ACTION_LOCKED_BOOT_COMPLETED)){
  Intent mainActivityIntent = MainActivity.newIntent(context);
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  context.startActivity(mainActivityIntent);} 
}

1 Ответ

0 голосов
/ 16 марта 2019

Вы устанавливаете флаг для другого намерения.
intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);

public void onReceive(Context context, Intent intent) {
super.onReceive(context,intent);
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) || 
  intent.getAction().equals(Intent.ACTION_LOCKED_BOOT_COMPLETED)){
  Intent mainActivityIntent = MainActivity.newIntent(context);
  // set flag on mainActivityIntent
  mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  context.startActivity(mainActivityIntent);} 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...