我的应用中有两项活动。一个是首次启动应用程序时显示的列表。当用户选择它时,将使用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()
(对吗?)。那么我该怎么办呢?
答案 0 :(得分:1)
完全!您的用户界面只会在onCreate()
和onStart()
之后呈现。
为防止这种情况发生,您应该将重物移到其他线程,最好使用AsyncTask
。
Android Developer的无痛线程文章解释了如何做得很好,看一看! http://developer.android.com/resources/articles/painless-threading.html