Context.startActivity()导致滞后

时间:2017-08-24 16:52:09

标签: android animation android-activity lag

我有两个活动:LauncherActivity和MainActivity。 MainActivity包含一个地图片段,导航栏和带有UI的ConstraintLayout。 LauncherActivity的目的是为用户提供登录可能性,然后提供app init(下载UserInfo,FusedLocationAPI初始化以在映射打开和一些misc操作之前获取用户位置)。 App init在单独的线程中执行,并在完成时调用主线程(通过Handler)。虽然它执行LauncherActivity会显示ProgressBar。完成所有工作后,将调用此代码:

startActivity(new Intent(LauncherActivity.this, MainActivity.class));
finish();

结果是当活动开始时,ProgressBar会冻结第二个,然后Activity会显示滞后动画。

我该如何解决这个问题?

修改1 我做了一些测试。我的代码是这样的:

mLoadingTextView.setText("Loading...");
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        handler.removeCallbacks(this);

        mLoadingTextView.setText("Done!");
        mLoadingProgressBar.setVisibility(View.GONE);

        startActivity(new Intent(LauncherActivity.this, MainActivity.class));
        finish();
    }
}, 5000);

我得到的结果:延迟5秒后TextView的文字改为"完成!"并且仅在打开一些第二或第二个MainActivity之后。这个问题是由使用地图片段膨胀布局引起的吗?如果是这样,我该如何解决这个问题?

0 个答案:

没有答案