我是 android 的新手,所以请不要为这个问题向我扔石头,但我已经经历了很多线程并且没有找到或者哪个更可能不理解答案。
我有主要的活动,应该在第一次开始从互联网上下载基本数据和图像。加载我在单独线程上的图像,因此它不会减慢启动速度。但是主要数据(一些文本和图像链接)也需要一些时间。
我的问题是我的 onCreate 活动在所有变量初始化 setContentView(R.layout.main); 然后检查缓存文件是否存在,如果没有创建它们并将日期下载到它们中(一切正常)......但布局显示在所有代码完成后!我在代码开始时尝试了progressBar,我尝试了分离线程并加入主线程,但在线程中的代码完成之前,屏幕始终保持空白(仅带有标签)。我认为我的问题是可以理解的,可能很愚蠢,并且不需要我的代码。
我想要的是......在应用程序启动后立即显示初始化布局,在完成最重要和最基本的任务以显示内容布局......然后我将处理一些延迟加载的图像(如一旦我理解它)。
所以对我来说最重要的是在执行任何代码之前强制显示一些东西......
感谢您的简单回答。
好的,这是我的 onCreate 代码。问题是,我想在应用程序启动后立即显示 layout.init(会有类似 - “第一次启动时请稍候......”)并且在下载基本数据并保存到 sdcard 以显示布局.主...
请忽略条款标签和与之相关的所有内容(仅限新闻标签)
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
context = this;
setContentView(R.layout.init);
newsListView = (ListView) findViewById(R.id.novinky);
termsListView = (ListView) findViewById(R.id.terminovka);
File data_dir = new File(Environment.getExternalStorageDirectory() + "/" + Data.DATA_DIR);
FileUtilities.DeleteRecursive(data_dir);
if(!checkDataFiles()){
createDataFiles();
try {
updateDataFiles(Data.NEWS_ONPAGE);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
imagesLoadingThread.start();
setContentView(R.layout.main);
newsVals = MyFunctions.readNewsData(Data.NEWS_ONPAGE);
newsListView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putLong("id", id);
Intent newActivity = new Intent(view.getContext(),NewsActivity.class);
newActivity.putExtras(bundle);
startActivity(newActivity);
}
});
newsListView.setAdapter(new NewsAdapter(context, newsVals));
termsVals=MyFunctions.connectArrayValues(items, items, "#");
termsVals=MyFunctions.connectArrayValues(termsVals, descrs, "#");
termsListView.setAdapter(new TermsAdapter(context, termsVals));
final TabHost tabs=(TabHost)findViewById(R.id.tabhost);
tabs.setup();
TabHost.TabSpec spec=tabs.newTabSpec("newstab");
spec.setContent(R.id.novinky);
spec.setIndicator(getText(R.string.news));
tabs.addTab(spec);
TabHost.TabSpec spec2=tabs.newTabSpec("termstab");
spec2.setContent(R.id.terminovka);
spec2.setIndicator(getText(R.string.terms));
tabs.addTab(spec2);
}