关于打开APP进入欢迎界面后,自动跳到主页面的解决方法

这个问题很简单,但是之前没有去查找教程,导致自己做了之后一堆莫名其妙的BUG,一开始是直接在欢迎界面定义了一个BUTTON,然后点击该BUTTON跳转到主界面,但显然这不是我想过要的效果,后面就想到用Handler来实现,然后在OnCreate方法里开一个线程来启动主界面,具体代码如下:加粗的为该方法的核心代码,其他的只是动画效果。
package com.example.grass.intent;

import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.widget.Button;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {
    private Button btn_1;
    private RelativeLayout rl_root; //界面的根布局组件
    private Handler handler = new Handler(){
        public void handleMessage(Message msg){
        Intent it = new Intent();
        it.setClass(MainActivity.this,HomeActivity.class);//第一个参数为当前Activity,第二个为将要跳转的Activity
        MainActivity.this.startActivity(it);
        MainActivity.this.finish();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initAnimation();//初始化动画
        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                    Thread.sleep(3000);
                }catch (Exception e){
            }handler.sendEmptyMessage(0);}
        }).start();
        btn_1 = (Button) findViewById(R.id.button);
        btn_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this,HomeActivity.class);
                startActivity(intent);
            }
        });
    }
    private void initView() {
        setContentView(R.layout.activity_main);
        rl_root = (RelativeLayout)findViewById(R.id.rl_splash_root);
        //  tv_versionName = (TextView) findViewById(R.id.tv_splash_version_name);
    }

    //动画显示
    private void initAnimation() {
        //创建动画,Alpha动画,0.0完全透明,1.0.完全显示
        AlphaAnimation aa = new AlphaAnimation(0.0f,1.0f);
        aa.setDuration(3000);  //3秒动画播放时间
        aa.setFillAfter(true);  //界面停留的动画结束的状态
        //显示动画
        rl_root.startAnimation(aa);
    }
}

你可能感兴趣的:(关于打开APP进入欢迎界面后,自动跳到主页面的解决方法)