Android startActivities Intent Order - PullRequest
       3

Android startActivities Intent Order

0 голосов
/ 24 января 2020

Мое приложение должно отображать активность диалога в качестве наложения на экране настроек приложения. Вот почему приложение должно запускать несколько действий одновременно.

Для этого я использовал метод startActivities.

    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
    intent.setData(uri);

    Bundle bundle = new Bundle();
    bundle.putString("SettingsItems", "Items");

    Intent i = new Intent(mContext, AutoStartSettingsActivity.class);
    i.putExtras(bundle);

    Intent[] intents = new Intent[2];
    intents[0] = intent;
    intents[1] = i;

    startActivities(intents);

Но сначала всегда запускается действие AutoStartSettingsActivity (которое есть в моем приложении), а затем Экран настроек приложения. Вот почему на экране «Настройки» отображается действие диалога, которое является обратным.

Я пытался изменить порядок намерений, но не смог:

 Intent[] intents = new Intent[2];
 intents[0] = i; 
 intents[1] = intent;

, поэтому вопрос, какой порядок намерений следует применять в массиве намерений startActivities поэтому диалоговое окно может отображаться на экране настроек приложения.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Чтобы гарантировать порядок запуска действий, я бы сделал следующее:

  • Launch SettingsActivity
  • при вызове onPause() в вашем приложении, запустите диалоговое окно AutoStartSettingsActivity

Если это не работает, вам может потребоваться добавить некоторую задержку перед запуском AutoStartSettingsActivity

0 голосов
/ 24 января 2020

Для того, чтобы начать глубоко, попробуйте начать свои действия один за другим.

Intent a = new Intent(this, SettingsActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(a);

Intent b = new Intent(this, DialogActivity.class);
startActivity(b);

Таким образом, вы можете начать свои действия a и b одновременно, подавить переход к настройкам SettingsActivity и получить одиночный переход от текущей активности к DialogActivity.

...