基本上,我们正在维护特定用户环境的会话。为此,我们必须维护三个基本的东西。这是登录,会话检查和注销。
在Android中,每个屏幕都由Activity设计。我们可以startActivity()
和finish()
当前活动。但你不能做那个以前的活动。
APP的UI设计:
登录(主要活动) - >主页(儿童活动) - >它包含个人资料,添加数据,设置等(子子活动)。所有屏幕在菜单中都有一个注销选项。
问题是:
当我选择退出时。该应用程序获得注销。但我无法将应用程序导航到登录屏幕。尚未从活动堆栈中完成Previous子活动。
实现这一目标的任何想法?最感谢的。
答案 0 :(得分:1)
模板模式可以很好地适应这里。 (伪代码跟随)
public class BaseActivity extends Activity{
protected void onCreate(savedInstance){
if(user is logged in){
onLoggedIn(savedInstance);
else{
//TODO: clear some flags in your object model which identify
//the case when the user is logged in
startActivity(this,LoginActivity.class);
finish();
}
}
protected abstract void onLoggedIn(savedInstance);
}
public class SomeActivity extends BaseActivity{
protected void onLoggedIn(savedInstance){
//normally do activity stuff
}
}
警告:我没试过。这只是我现在想到的一个想法。
基本上你有你的基本Activity,它有onCreate(...)方法,你检查用户是否登录。如果它已登录你调用抽象方法“onLoggedIn(...)”,否则你启动登录活动并清除对象模型中的所有登录信息。