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

Android 使用TabHost切换选项卡时加载单独的活动,android,Android,好的!我的代码很简单。制作两个选项卡并将其添加到TabHost中。问题是我的活动占用了大量的记忆,需要时间来处理。一次只能加载一个活动。但是,当我启动应用程序时,似乎两个活动都已加载,这将花费更长的时间。 因此,我只希望在选择其选项卡时允许加载一个活动,简单地说,如果我选择第一个选项卡然后加载第一个活动,我选择第二个选项卡然后加载第二个活动,而不是两者都加载。有什么建议吗?当活动启动时,将调用它们的onCreate()和onResume()回调。您只能在用户按下活动中的按钮时开始计算,以便快速加

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

当活动启动时,将调用它们的
onCreate()
onResume()
回调。您只能在用户按下活动中的按钮时开始计算,以便快速加载初始数据。
也可以将您的长时间计算放在
AsyncTask
中,这样计算就不会阻塞UI线程。

如果我只想在切换到其选项卡时加载特定活动(当然不需要用户按下按钮),比如使用setOnTabChangedListener()该怎么办
    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);