При вызове Games.Achievements.unlock не отображается всплывающая подсказка

В моей текущей игре Android используется BaseGameActivity.

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

Однако я НЕ ВСЕГДА вижу PopUps, связанные с событием разблокировки.

Я знаю, что всплывающее окно появляется только тогда, когда вы сначала открываете «Достижение».

Некоторые всплывающие окна выглядят отлично, другие (с разных экранов в моей игре) никогда не появляются.

Что мне нужно сделать, чтобы гарантировать появление всплывающих окон?

У меня есть чувство, связанное с этим ПРЕДУПРЕЖДЕНИЕ:

W/PopupManager(10725): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view. 

Я вызвал setViewForPopups () из того, что мои всплывающие окна не отображаются, но я их никогда не видел.

Как вы называете setViewForPopups (), чтобы все приложения не отображали сообщения WARNING, показанные выше?

Я нашел решение, используя этот код

  Games.setViewForPopups(getApiClient(), getWindow().getDecorView().findViewById(android.R.id.content)); 

Я могу отображать всплывающие окна. У меня теперь есть связанная с этим проблема. Всплывающее окно не отображается очень долго.

Я думаю, это связано с тем, что у меня есть пользовательская анимация в этом упражнении.

Есть ли способ увеличить время видимости всплывающего окна?

Это сработало для меня.

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate"); setContentView(R.layout.activity_main); // Create the Google API Client with access to Plus, Games and Drive // Also set the view for popups mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext()) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN) .addApi(Games.API).addScope(Games.SCOPE_GAMES) .addApi(Drive.API).addScope(Drive.SCOPE_APPFOLDER) .setViewForPopups(findViewById(android.R.id.content)) .build(); } 

Android.R.id.content дает вам корневой элемент представления, не зная его фактического имени / типа / идентификатора. Проверьте Get root view из текущей активности