我正在开发一个用户可登录的Android应用程序。为此,每项活动都将扩展为BaseActivity
。在那里,在onResume()
方法中,我检查用户是否已登录,如果没有,我通过调用startActivity()
来启动我的LoginActivity
。我们称之为FailActivity
。startActivity()不立即调用?
当FailActivity
重新开始时,它的onResume()
被正确调用,然后调用super.onResume()
,我得到startActivity()
。但意图从未被执行。而是BaseActivity.onResume()
将执行传递回FailActivity.onResume()
。因为用户没有登录这将产生一个错误
这里是BaseActivity
相关代码:
@Override
protected void onResume()
{
super.onResume();
boolean wtf = false;
if (!loggedIn) {
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra(LoginActivity.EXTRA_NEXT_ACTIVITY, this.getClass().getName());
startActivity(intent);
wtf = true;
}
if (wtf)
Log.wtf("wtf", "this should not happen");
}
我已经打过电话finish()
之前和之后startActivity()
,并设置在各类旗帜意图,没有一个做我想要的。
如何强制执行登录意图?为什么startActivity()
似乎没有效果,为什么只有这一项活动?
如果我打电话return''startActivity()'我回到'FailActivity.onresume()',这是不是有什么我想要。基本上,有没有办法同时执行'startActivity()'? – modemuser 2014-09-27 21:01:22
否,没有办法执行活动异步。回调函数'onActivityResult()'用来处理返回的Activity或更好的Activity的结果。 – rekire 2014-09-27 21:05:41
如果我在'FailActivity'中的'super.onResume()'之后放置了'if(!loggedIn)return;',一切正常。谢谢! – modemuser 2014-09-27 21:07:43