Android异步启动屏幕不显示内容视图
在我的应用程序中,主页面包含了很多可以加载到我的上传管理器活动中的图像,因此可能需要几秒钟的时间,具体取决于有多少图像。 我计划创建一个启动画面来执行此加载,同时显示的图像不像标题的默认空白屏幕那么糟糕。 我已经做到了这一点,这应该工作,除了setcontentview()运行,但不显示。
public class SplashScreen extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
load l=new load();
l.execute(this);
}
class load extends AsyncTask<Activity, Object, Object>{
@Override
protected Object doInBackground(Activity... a) {
// TODO Auto-generated method stub
Log.i("ss", "splash");
Intent intent = new Intent(a[0], UploadManager.class);
startActivity(intent);
a[0].finish();
return null;
}
}
}
有没有人有任何建议? 并随时提供详细信息,我认为我没有解释得太好。
编辑:
感谢你们的快速回复。 但我相信问题是我没有使用启动画面来达到正确的目的,涉及的过程如下:
Intent intent = new Intent(a[0], UploadManager.class);
startActivity(intent);
a[0].finish();
似乎立即完成,这意味着我的onCreate方法中的图像只有在启动画面之后才会执行。 我所做的改变是将我的网格加载到asynk任务中,就像在那里做我的图像一样。
我现在快速加载几秒钟后出现的图像。 我将实施某种进度对话框。
任何有类似问题的人都应该优先考虑如何使装载更有效率。
你逝去的语境 ,因为这在l.execute(本),并在课堂上载您已经通过活动实例。 你可以这样做,它对我来说就像一个魅力
public class SplashScreen extends Activity{
private static int SLPASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
finish();
}
}, SLPASH_TIME_OUT);
}
}
在class load extends AsyncTask<Activity, Object, Object>{
覆盖onPostExecute
方法class load extends AsyncTask<Activity, Object, Object>{
class,它将在doInBackground
方法完成图像下载时运行。 在onPostExecute
您可以打开下一个活动
喜欢
protected void onPostExecute(Void unused) { Intent intent= new Intent(this, next.class); startActivity(intent); }