通过跳过主要活动(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);
}
}
我已经坚持了一段时间,所以真的可以使用一些帮助。
答案 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。