繁体   English   中英

应用程序或活动需要一些时间来加载

[英]Application or activity takes time to load some times

我已经创建了一个启动活动,我将调用另一个具有视图寻呼机并显示一些介绍性页面的活动。

这个应用程序需要时间来加载,所以我想在活动加载之前显示一个进度对话框,但是几秒钟之后也会出现该进度对话框。

启动活动:

public class StartUpActivity extends AppCompatActivity {
    boolean isUserFirstTime, login;
    public static String PREF_USER_FIRST_TIME;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        isUserFirstTime = Boolean.valueOf(Utils.readSharedSetting(StartUpActivity.this, PREF_USER_FIRST_TIME, "true"));
        Intent introIntent = new Intent(StartUpActivity.this, SlidingActivity.class);
        introIntent.putExtra(PREF_USER_FIRST_TIME, isUserFirstTime);

        ProgressDialog dialog = new ProgressDialog(StartUpActivity.this);
        dialog.setMessage("Welcome to Mea Vita, please wait till the app loads.");
        dialog.setCancelable(false);
        dialog.setInverseBackgroundForced(false);
        dialog.show();

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //Here you can send the extras.

                startActivity(new Intent(StartUpActivity.this,SlidingActivity.class));

                // close this activity
                finish();
            }
        }, 4000);
    }
}

这不会每次都发生,有时候也不会发生。 可能的原因是什么? 我怎么能阻止这个? 有解决方案吗 谢谢..

新发布的Android Studio 2.0存在一个奇怪的问题(2.1中的相同问题)第一次启动应用程序需要比平时更长的时间(例如2,3秒或有时屏幕闪烁或变黑)此问题仅在调试模式下发生且不起作用你发布的APK。

解决此问题的临时解决方案是禁用instant run

Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run

首先,规则是在异步任务中加载所有数据,您必须检查要在加载数据的位置启动的活动。

问题出在你的第二个活动中。 oncreate方法应仅用于创建findviews或启动async tasks ,不要在oncreateonstartonresume加载任何onresume 您可能正在滑动布局中加载高分辨率图像或在其中加载数据。

还有另一种方法,在第一个活动的异步任务中加载所有数据,然后使用就绪数据启动第二个活动,并且已加载数据。

有些事情可以缓慢加载。

  1. Android需要从存储中读取您的代码并将类加载到ram中。
  2. 我假设Utils.readSharedSetting(StartUpActivity.this, PREF_USER_FIRST_TIME, "true")从首选项中读取。 这是你正在同步阅读的文件。
  3. 实际上启动对话框只需要很短的时间。

我建议在活动内部显示你的加载,以尽量减少渲染它所需的工作。

此外,您可以将PREF_USER_FIRST_TIME存储为boolean而不是String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM