Android Studio:应用程序跳过MainActivity并在启动时登陆SecondaryActivity

时间:2016-11-28 09:34:18

标签: android android-studio android-fragments ide

通过跳过主要活动(AuthenticationActivity)并登陆辅助活动(HomeActivity),我的应用程序的行为不符合预期。如果我的代码是正确的,那么它应该启动AuthenticationActivity并在未登录时将用户置于WelcomeFragment上,如果用户登录则置于HomeActivity上。这是AuthenticationActivity的代码:

package com.android.MyApp.main;

import com.android.MyApp.R;
import com.android.MyApp.authentication.fragments.WelcomeFragment;

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.app.FragmentManager;

import com.android.MyApp.authentication.Constants;

public class AuthenticationActivity extends AppCompatActivity{



    private SharedPreferences pref;

    @Override
    //Applying layout to activity
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_authentication);
        pref = getPreferences(0);
        initFragment();
        initActivity();
    }

    private void initFragment(){
        Fragment mFragment;
        if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
            initActivity();
        }else {
            mFragment = new WelcomeFragment();
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.replace(R.id.fragment_frame,mFragment);
            ft.commit();
        }
    }


      private void initActivity(){
          //Starting HomeActivity from Authentication Activity if user is logged in.
          Intent intent = new Intent(this, HomeActivity.class);
          startActivity(intent);
    }
}

我已经坚持了一段时间,所以真的可以使用一些帮助。

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为在Authentication activity的onCreate方法中,你(我猜错了)称为“initActivity()”方法。

您已经开始使用HomeActivity。

查看您的initActivity代码:

 private void initActivity(){
          //Starting HomeActivity from Authentication Activity if user is logged in.
          Intent intent = new Intent(this, HomeActivity.class);
          startActivity(intent);
    }

如果用户已登录,则从onCreate()中删除此方法或在此处添加一些条件,然后移至HomeActivity。