使用TabHost切换选项卡时加载单独的活动

时间:2011-03-12 20:18:51

标签: android

    TabHost tabHost = getTabHost(); 
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab
    // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, FirstActivity.class);
    // Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("hottest").setIndicator("Hottest",
                      res.getDrawable(R.drawable.ic_tab_hottesttrack))
                  .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, SecondTrackActivity.class);
    spec = tabHost.newTabSpec("latest").setIndicator("Latest",
                      res.getDrawable(R.drawable.ic_tab_latesttrack))
                  .setContent(intent);
    tabHost.addTab(spec);

奥基!我的代码很简单。制作2个标签并将其添加到TabHost中。问题是我的活动都使用了大量的记忆并需要时间来处理。一次只能加载一个活动。但是,当我启动我的应用程序时,似乎两个活动都被加载,这将需要更长的时间。 所以我希望在选择其选项卡时只允许加载一个活动,简单地说如果我选择第一个选项卡然后第一个活动加载,我选择第二个选项卡然后第二个活动将加载,而不是两个。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

活动开始后,系统会调用onCreate()onResume()个回调。您可能只在例如开始计算时开始计算用户按下活动中的按钮,以便初始加载快速。 还要将您的长计算放在AsyncTask内,以便计算不会阻止UI线程。