アプリを開いてウェルカム画面に入った後、自動的にホームページに飛び込む解決方法について

2406 ワード

この問題は簡単ですが、これまでチュートリアルを探していなかったので、自分がやった後、わけのわからないバグが山積みになっていました.最初はウェルカムインタフェースで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);
    }
}