gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:13:04 24 4
gpt4 key购买 nike

在我的应用程序中,主页包含相当多的图像要在我的上传管理器 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com