我正在构建一组类似于MS Office的应用程序。每个应用程序都有自己的启动器,也可以从家庭应用程序内部启动。每个应用都有一个登录页面。我需要在从Android启动器启动应用程序时显示登录页面,而在从家庭应用程序启动时不显示登录页面,我该如何实现?
我的情景:
来自启动器----->(应用)登录页面--->(应用程序)主屏幕
来自家庭应用程序----->(应用程序)主屏幕
答案 0 :(得分:11)
你可以通过启动一个空的activity
(没有用户界面)和OnCreate
方法取决于一些变量信息(你可以使用SharedPreferences
或许为此目的)来做到这一点可以决定启动哪个Activity
(登录或主屏应用)。
PS:
如果登录总是导致相同的活动(主屏幕并且不用于登录其他地方),甚至不需要空活动,您可以在登录的Oncreate
方法中进行检查活性
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (logged_in_check_is_true)
{
Intent intent = new Intent(this, HomeScreenActivity.class);
this.startActivity (intent);
this.finishActivity (0);
}
...
答案 1 :(得分:1)
您应该始终LoginPageActivity
开始。但是,如果你从“家庭应用程序”启动它,只需将特殊额外通过活动:
public class LoginPageActivity extends Activity {
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean needLogin = getIntent().getBooleanExtra("need login extra", true);
if (!needLogin)
{
// start your home screen
}
//setup login page
}
}
在家庭应用程序中,只需将“需要登录额外”作为错误传递。
答案 2 :(得分:1)
基本上与tozka所说的相似,您还可以启动您期望更频繁需要的活动,并创建您检查您是否参加了正确的活动。如果没有调用startActivity与其他活动,而不是先膨胀任何视图等。因此,如果您的期望是正确的,那么在超过50%的情况下,您已经处于正确的活动中,从启动时调用的两个活动中保存您的应用