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); }

链接地址: http://www.djcxy.com/p/66793.html

上一篇: android async splash screen not showing content view

下一篇: What happens during the iOS Splash Screen?