Android ViewPager片段和CircleIndicator重新创建自身

Android ViewPager片段和CircleIndicator重新创建自身,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,您好,我对viewPager和CircleIndicator有问题。 每次我切换到其他活动或按 选项卡硬件键盘面板(应用程序之间的切换选项卡),然后返回 到WelcomeActivity.java它会重新创建自己-圈点和片段中的项(重新创建片段)。 而且,如果我按下面板中的TAB硬件键盘,然后重新进入我的应用程序,它将不允许我直接返回,它会溅起白色然后消失。 如果我点击图标返回我的应用程序,它会重新创建片段。你能帮我吗 这里是我的代码:WelcomeActivity.java protecte

您好,我对
viewPager
CircleIndicator
有问题。 每次我切换到其他活动或按 选项卡硬件键盘面板(应用程序之间的切换选项卡),然后返回 到
WelcomeActivity.java
它会重新创建自己-圈点和片段中的项(重新创建片段)。 而且,如果我按下面板中的TAB硬件键盘,然后重新进入我的应用程序,它将不允许我直接返回,它会溅起白色然后消失。 如果我点击图标返回我的应用程序,它会重新创建片段。你能帮我吗

这里是我的代码:
WelcomeActivity.java

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome_page);

    //Function Call
        assignWidgetId();
    //ViewPager for text AppIntro
        mViewPager = (ViewPager) findViewById(R.id.viewpager_welcome_msg);
        circlePageIndicator = (CirclePageIndicator) findViewById(R.id.circle_indicator);
        setUpViewPager(mViewPager);
        circlePageIndicator.setViewPager(mViewPager);

    runnable = new Runnable() {
        @Override
        public void run() {
            int currentPage = 0;
            if(currentPage == FRAGMENT_PAGE - 1){
                currentPage = 0;
            }
            mViewPager.setCurrentItem(currentPage,true);
            handler.postDelayed(runnable,DELAY_TIME_CHANGE_SLIDE);
        }
    };

    swipeTimer = new Timer();


    try{
        mVideoView = (VideoView) findViewById(R.id.yayong_welcome_video);
        mVideoView.setVideoURI(uri);
        mediaPlayer.setVolume(0, 0);
        mVideoView.start();
    } catch (Exception e){
        //mImageView.setVisibility(View.VISIBLE);
    }

    //IF ERROR VIDEO CANNOT BE PLAYED
    mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
        @Override
        public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
            //wait for 1 seconds
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                        //mImageView.setVisibility(View.VISIBLE);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
            if (videoCompleted) {
                mVideoView.start();
                mediaPlayer.setVolume(0, 0);
            }
            return false;
        }
    });
    //IF COMPLETE REPEAT AGAIN - SILENT
    mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            videoCompleted = true;
            mVideoView.start();
            mediaPlayer.setVolume(0, 0);
        }
    });


}

public void assignWidgetId(){
    btnSignIn = (Button) findViewById(R.id.signIn);
    btnSignIn.setOnClickListener(this);
    btnSignUp = (Button) findViewById(R.id.signUp);
    btnSignUp.setOnClickListener(this);
    textViewForgotPass = (TextView) findViewById(R.id.textViewForgotPassword);
    textViewForgotPass.setOnClickListener(this);
    //mImageView = (ImageView) findViewById(R.id.welcome_image_backup);
}

@Override
public void onClick(View v) {

    switch (v.getId()){
        //GO TO LOGIN ACTIVITY
        case R.id.signIn:
            Intent intentSignIn = new Intent(WelcomePageActivity.this,LoginActivity.class);
            startActivity(intentSignIn);
            finish();
            break;

        //GO TO REGISTER ACTIVITY
        case R.id.signUp:
            Intent intentSignUp = new Intent(WelcomePageActivity.this,RegisterActivity.class);
            startActivity(intentSignUp);
            finish();
            break;

        case R.id.textViewForgotPassword:
            forgotPasswordDialog();
            break;
    }
}

public void setUpViewPager(ViewPager viewPager){
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragments(new Welcome_First_Fragment());
    adapter.addFragments(new Welcome_Fragment_Second());
    adapter.addFragments(new Welcome_Fragment_Third());
    viewPager.setAdapter(adapter);
}

static class Adapter extends FragmentPagerAdapter{
    private static List<Fragment> mFragmentList = new ArrayList<>();

    public Adapter(FragmentManager fragmentManager){
        super(fragmentManager);
    }

    public void addFragments(Fragment fragment){
        mFragmentList.add(fragment);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

}
public class Welcome_First_Fragment extends Fragment {
RelativeLayout relativeLayout;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View viewRoot = inflater.inflate(R.layout.welcome_fragment_first, container,false);
    relativeLayout = (RelativeLayout) viewRoot.findViewById(R.id.welcome_about_first);

    return viewRoot;
}
我用的是杰克·沃顿的寻呼机回路指示器 我使用System.exit(0)解决了这个问题;每次我回到这个页面,这样它就不会重新创建项目。我知道这不是最好的办法。有没有别的办法?