java - android 异步启动屏幕不显示内容 View

标签 java android android-asynctask android-activity splash-screen

在我的应用程序中,主页包含相当多的图像要在我的上传管理器 Activity 中加载,因此可能需要几秒钟的时间,具体取决于有多少图像。我计划创建一个启动画面来执行此加载,同时显示一个图像,该图像不像带标题的默认空白屏幕那么糟糕。我已经这样做了,它应该可以工作并且确实可以,除了 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 方法中的图像直到启动屏幕之后才执行。相反,我所做的是将网格的加载更改为异步任务,而不是只在那里处理我的图像。

我现在可以快速加载,几秒钟后就会出现图像。我将实现某种进度对话框。

任何其他有类似问题的人都应该像我一样优先考虑提高加载效率。

最佳答案

您将上下文作为l.execute(this)中的this传递,并在类load中传递您'已经传递了 Activity 实例。 你可以这样做,这对我来说就像一个魅力

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

关于java - android 异步启动屏幕不显示内容 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687209/

相关文章:

java - 无法连接到我的 tomcat 8 websocket

Android、RSA8 和 java.lang.NoClassDefFoundError : sun/security/x509/X500Name

java - Eclipse 不会运行 :\. 元数据\.log 错误

android - ListView 很慢-android

java - AsyncTask 类的 onProgressUpdate() 不起作用

java - 每次我执行某个 GET 语句时,应用程序都会崩溃。我怎样才能解决这个问题?

java - 在特定布局中添加矩阵

java - 在 javafx 中的数组列表中创建和存储不同数量的形状

java - 如何知道在背包问题(DP实现)中选择了哪个项目?

android - 如何发送短信回复到邮箱地址?