[英]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
,不要在oncreate
或onstart
或onresume
加载任何onresume
。 您可能正在滑动布局中加载高分辨率图像或在其中加载数据。
还有另一种方法,在第一个活动的异步任务中加载所有数据,然后使用就绪数据启动第二个活动,并且已加载数据。
有些事情可以缓慢加载。
Utils.readSharedSetting(StartUpActivity.this, PREF_USER_FIRST_TIME, "true")
从首选项中读取。 这是你正在同步阅读的文件。 我建议在活动内部显示你的加载,以尽量减少渲染它所需的工作。
此外,您可以将PREF_USER_FIRST_TIME
存储为boolean
而不是String
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.