有没有办法在android中的setcontentView中加入一些延迟?

时间:2013-10-17 06:55:27

标签: android android-layout

我有一个SetContentView(R.layout.camera); 我希望这个布局在几毫秒后开始执行....直到那时它应该是空白的。我怎样才能在android中实现这个目标?

4 个答案:

答案 0 :(得分:1)

为此,写下你的onCreate()就像这样..然后它会起作用..

Thread t = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    t = new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                t.sleep(5000);
                runOnUiThread(new Runnable() {
                    public void run() {
                        setContentView(R.layout.activity_main);
                    }
                });

            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });
    t.start();

}

答案 1 :(得分:1)

您可以使用处理程序进行延迟

 Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
       //setcontentview
    }
};
在oncreate方法中

Message m = Message.obtainMessage();
handler.sendMessageDelayed(m, delayMillis);

答案 2 :(得分:0)

除非调用 onResume(),否则您的活动将不可见,在主线程中执行某些操作或 onCreate()方法它将阻止您的主线程和UI在您的操作完成之前不会显示。

答案 3 :(得分:0)

创建根视图,其中所有组件和可见性设置为 INVISIBLE GONE ,然后在延迟后显示。您可以使用Handler和postDelayed在延迟后执行代码。