2010-09-18 62 views
0

基本上,我们正在维护特定用户环境的会话。为此,我们必须维护三个基本的东西。这是登录,会话检查和注销。Android中的活动设计?

在Android中,由Activity设计的每个屏幕。我们可以startActivity()finish()一个当前Activity。但是你不能这样做以前的活动。 APP的

UI设计: - >首页(儿童活动) -

登录(主要活动)>它包含了档案,添加数据,设置等(子子活动)。所有屏幕在菜单中都有一个注销选项。

存在的问题是:

当我选择一个注销。该应用程序获取注销。但我无法将应用程序导航到登录屏幕。前一个子Activity没有从Activity Stack中完成。

任何想法达到此目的?它最感谢。

+3

您应该没有特殊的注销屏幕,因为这不是android用户期望的东西。只需让应用程序在关闭或销毁时自动注销,否则用户将无法正确使用后退按钮。注销按钮与退出按钮非常相似,因此请参阅:http://blog.radioactiveyak.com/2010/05/when-to-include-exit-button-in-android.html – poke 2010-09-20 06:25:48

回答

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 
    } 
} 

警告:我没有尝试了这一点。这只是我现在想到的一个想法。

基本上,你有你的基本活动,它有onCreate(...)方法,你检查用户是否登录。在它登录的情况下,调用抽象方法“onLoggedIn(...)”,否则您开始登录活动并清除对象模型中的任何登录信息。