当我在活动之间切换时,我的应用程序会闪烁,并在后台显示以前的活动



我们有HomeActivity,即NavigationDrawyer Activity,其中有许多选项,如作业和策略。如果他第一次点击作业我们将显示JobUserForm.class,从下一次开始,如果他单击JobsList然后单击JobDetails,我们将显示JobsList.class。策略也是如此。问题是,当我在这些页面之间导航时,前一页在后台会闪烁几秒钟。例如,如果我在加载jobs时单击home中的jobs活动列表屏幕home活动屏幕在后台闪烁。在加载job时,详细信息屏幕jobs列表屏幕也会闪烁。政策也是如此。我该怎么解决?帮我解决。

在我的家Actiivty.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);
}
}

您需要在startactivity()之后使用overridePendingTransition(0,0);来删除切换活动时要使用的任何转换。

最新更新