在其他活动之前显示活动一段时间

时间:2013-10-28 07:49:09

标签: android adt

我有一个任务是制作一个启动画面,显示5秒钟,然后应该出现登录屏幕。所以,我有一个主要活动作为启动画面和登录活动,显示登录表单。 在main活动的onCreate函数中,我在setContentView函数之后设置了thread.sleep(5000)函数,然后加载登录活动。 但问题是主要活动内容没有出现。

那我哪里错了?

3 个答案:

答案 0 :(得分:1)

这对我来说很好。请检查一下。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

import android.os.Message;

import android.view.Window;
import com.om.utils.Constant;
import com.om.utils.Utils;

public class Splash extends Activity {

    private static final int GoNextActivity = 1988;
    private static final int FinishThisActivity = 1989;
    private Intent intent = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.splash);



        if (Utils.isOnline(Splash.this)) {
            mHandler.sendEmptyMessageDelayed(GoNextActivity, 2000);
        } else {
            Utils.displayToast(Splash.this, Constant.NO_NETWORK_CONNECTION);
            mHandler.sendEmptyMessageDelayed(FinishThisActivity, 2000);
        }
    }

    Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            switch (msg.what) {
            case GoNextActivity:
                intent = new Intent(Splash.this, HomeActivity.class);
                startActivity(intent);
                finish();
                break;
            case FinishThisActivity:
                finish();
                break;
            default:
                break;
            }
            super.handleMessage(msg);
        }
    };
}

它可能对你有帮助。

答案 1 :(得分:0)

您可以简单地使用延迟处理程序:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            //launch new activity here

        }
    }, 5000);
}

答案 2 :(得分:0)

当你在onCreate()中调用Thread.sleep(5000)方法时,它会阻止你的主UI线程做任何事情。它等待睡眠指令5秒钟。它不允许应用为您的启动活动创建视图。睡觉指导后,我想,你正在开展你的家庭活动。所以它会快速连续发生,第二项活动就在眼前。这就是为什么你无法看到任何关于启动活动的原因。 还有一件事,使用postDelayed(Runnable,timeInMillis)方法显示启动画面并在timeInMillis间隔后启动主活动。