我已经构建了一个应用程序,一旦应用程序第一次运行,它就开始将图像和一些数据从应用程序复制到内部存储器。然后在其他活动的其他地方使用这些数据。
复制过程需要30秒以上。所以我想在异步任务中这样做。但我无法让它发挥作用。异步任务运行良好但我需要创建选项卡规范并为onPostExecute方法的每个规范分配意图。但我所看到的只是没有规格的标签栏,没有任何作用。
所以任何想法如何以这种方式构建它?
任何帮助将不胜感激。 我的活动在这里,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabbar_main);
myJSON = new DataBaseJSONFunctions(this);
TabHost tabHost = getTabHost();
TabWidget tabWidget = tabHost.getTabWidget();
Resources res = getResources();
//TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
// Starting Initialization process.
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("firstRun", false)) {
initializeAll();
// Set "firstRun" true to make it runs once application is installed.
prefs.edit().putBoolean("firstRun", true).commit();
}
我想把这个块放在异步任务中,
intent = new Intent().setClass(this,Activities.class);
spec = tabHost.newTabSpec("activities").setIndicator("act",res.getDrawable(R.drawable.tab_activities_selector)).setContent(intent);
tabHost.addTab(spec);
// doing the same things.
intent = new Intent().setClass(this, Promotions.class);
spec = tabHost.newTabSpec("promotion").setIndicator("Promotion",res.getDrawable(R.drawable.tab_promotions_selector)).setContent(intent);
tabHost.addTab(spec);
// doing the same things for Albums Activity.
intent = new Intent().setClass(this,Menu.class);
spec = tabHost.newTabSpec("menu").setIndicator("Menü",res.getDrawable(R.drawable.tab_menu_selector)).setContent(intent);
tabHost.addTab(spec);
for(int i = 0; i < tabWidget.getChildCount(); i++){
tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_bar);
}
tabHost.setCurrentTab(0);
顺便说一句,我将我的活动的上下文传递给异步任务。
答案 0 :(得分:0)
尝试从TabHost
填充AsyncTask
有点不同寻常。我建议您在应用程序启动后立即使用标签填充TabHost
,然后运行AsyncTask
,这可能会显示ProgressDialog
,也可能不会显示AsyncTask
让用户知道正在发生的事情,在{{1}}完成后,您可以使用新数据填充UI。