我的代码可以将用户从底栏引导到个人资料页面。
private void startNewIntent(Class className, String uid){
Intent intent = new Intent(act, className);
intent.putExtra("uid", uid);
act.startActivity(intent);
act.finish();
}
className = DisplayProfile.class;
if(FirebaseAuth.getInstance().getCurrentUser() != null){
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
startNewIntent(DisplayProfile.class, uid);
} else {
startNewIntent(EmailPasswordActivity.class);
}
ProfileActivity.java中的
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String uid = getIntent().getStringExtra("uid");
if(uid != null){
...
}
}
我也尝试使用Bundle = getIntent().getExtra()
得到相同的结果。我见过类似的问题。情况似乎如此:getIntent() Extras always NULL
我试过
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
但getIntent().getExtra != null
仍然是假的。
感谢您的帮助和建议。
编辑:为startNewIntent()
添加了上下文答案 0 :(得分:0)
如果您的班级名称已经存在,请避免".class"
。
public void startNewIntent(Class className, String uid){
Intent intent = new Intent(act.this, className+".class");
intent.putExtra("uid", uid);
startActivity(intent);
}
下一阶段
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String uid = getIntent().getExtras().getString("uid");
if(uid != null){
...
}
}
答案 1 :(得分:0)
不是检查onCreate(),而是检查onNewIntent():
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String uid = getIntent().getStringExtra("uid");
if(uid != null){
...
}
}
@Override
protected void onNewIntent(Intent intent){
super.onNewIntent(intent);
String uid = getIntent().getStringExtra("uid");
if(uid != null){
...
}
}
如果它进入onNewIntent(),这意味着您正在使用launchMode进行活动。所以这是启动模式的行为。