我有一个问题,我做了一个简单的应用程序来向您展示我的问题。 我希望 setContentView 在执行 Sleep 之前执行并显示 .xml。我以为一切都会按顺序执行? 有没有人可以告诉我为什么它不这样做?
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// do something
}
非常感谢!
编辑:
这里才是真正的OnCreate,貌似问题比较大
sleep 一切正常,但 Connect 方法有问题。
<我>
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ConnectBluetooth();
}
在 ConnectBluetooth() 方法中,我只是创建一个新的 Socket 并尝试连接。
使用 ned 线程或处理程序似乎不起作用,那我该怎么办?使用类似异步任务的东西?
非常感谢!
最佳答案
直到创建过程完成后,调用 onResume()
后布局才会显示。然而,布局显示时没有回调,但您可以使用 Handler 和 Runnable 来执行此操作。
创建几个字段变量:
Handler handler = new Handler();
Runnable delay = new Runnable() {
@Override
public void run() {
// Do something
}
};
并且 onCreate()
调用:
handler.postDelayed(delay, 10000);
关于android - setContentView 执行得太迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025520/