Пока я переключаюсь между действиями, мое приложение мигает и показывает предыдущую активность в фоновом режиме - PullRequest
0 голосов
/ 01 февраля 2019

У нас есть HomeActivity, которое представляет собой NavigationDrawyer Activity, где есть много опций, таких как задания и политики. Если он нажимает на задания в первый раз, мы покажем JobUserForm.class, а в следующий раз мы покажем JobsList.class, если он щелкнет JobsList.тогда JobDetails.То же самое относится и к политикам. Проблема заключается в том, что во время навигации между этими страницами предыдущая страница мигает в фоновом режиме в течение нескольких секунд. Например, если я щелкаю задания в homeActivity во время загрузки экрана jobsList, экран homeActivity мигает в фоновом режиме.таким же образом при загрузке экрана jobDetails экран jobsList мигает.То же самое происходит и для политики.Как я могу решить это. Помогите мне с решением.

В моем HomeActiivty.class

    @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

            menuItem.setChecked(true);
            // close drawer when item is tapped
            switch (menuItem.getItemId()) {

                case R.id.nav_item_jobs:
                    if (internetConnection.checkConnection()) {
                        govJobs();
                    } else {
                        Toast.makeText(HomeActivity.this, "No internet connection", Toast.LENGTH_LONG).show();
                    }
                    break;
                case R.id.nav_item_policies:
                    if (internetConnection.checkConnection()) {
                        govPolicies();
                    } else {
                        Toast.makeText(HomeActivity.this, "No internet connection", Toast.LENGTH_LONG).show();
                    }
                    break;
                case R.id.nav_item_my_servant:
                    Toast.makeText(HomeActivity.this, "Coming soon", Toast.LENGTH_LONG).show();

                    break;

            }
            drawer.closeDrawers();
            return true;
        }



 private void govJobs() {
        job_rows_count = myAppDataBase.myDao().getNumberOfJobRows();
        if (job_rows_count >= 1) {
           // getWindow().setExitTransition(null);
            Intent intent = new Intent(HomeActivity.this, JobsList.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        } else {
           //
            Intent intent =new Intent(HomeActivity.this, JobUserForm.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }

    private void govPolicies() {

        policy_row_count = myAppDataBase.myDao().getNumberOfPolicyRows();

        if (policy_row_count >= 1) {
            Intent intent = new Intent(HomeActivity.this, PoliciesGrid.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        } else {

            Intent intent = new Intent(HomeActivity.this, PolicyUserForm.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }

1 Ответ

0 голосов
/ 01 февраля 2019

Вам нужно использовать overridePendingTransition(0,0); после startactivity (), чтобы удалить любые переходы, которые должны использоваться при переключении действий.

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