setContentView()不显示执行长任务的Activity中的接口

时间:2012-03-16 17:51:33

标签: android android-layout android-asynctask android-ui

我的应用中有两项活动。一个是首次启动应用程序时显示的列表。当用户选择它时,将使用Intent启动第二个活动。后者从意图中获取信息并执行一系列冗长的计算(大约20秒)。这是我的第二个活动:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_screen);

    Intent receivedIntent = getIntent();
    Bundle MyBundle = receivedIntent.getExtras();

    String myName = MyBundle.getString("selected");

    /*
     * Code for long operation here
     */

但是,在活动完成长操作之前不会显示用户界面,我怀疑这是因为它全部发生在onCreate()(对吗?)。那么我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

完全!您的用户界面只会在onCreate()onStart()之后呈现。

为防止这种情况发生,您应该将重物移到其他线程,最好使用AsyncTask

Android Developer的无痛线程文章解释了如何做得很好,看一看! http://developer.android.com/resources/articles/painless-threading.html