android - setContentView 执行得太迟

标签 android

我有一个问题,我做了一个简单的应用程序来向您展示我的问题。 我希望 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/

相关文章:

android - 如何从 url 在 android 中播放 gif?

android - 使用来自远程主机的包加载适用于 Android 的 ReactNativeHost

iphone - 如何为 2D 游戏中的角色创建平滑路径

android - 应用程序关闭时运行 android 服务

android - SwipeRefreshLayout -- 如何检测拖动距离?

android - 从 Google Play 商店安装时 Delphi XE6 应用程序崩溃

android - 在 ListView 之前滚动一个 View ,就像 Lollipop 手机应用程序一样

android - Firebase- ML Kit 库无法检测三星 J5 设备中的条码

java - 如何正确创建 AsyncTask

java - Android点击通知打开网页