我正在将一组应用程序构建为类似于 MS Office 的包。在这里,每个应用程序都有自己的启动器,并且可以从主应用程序内部启动。每个应用程序都有一个登录页面。从android启动器启动应用程序时,我需要显示登录页面,而从家庭应用程序启动时不显示登录页面,我该如何实现?
我的场景:
从启动器----->(应用程序)登录页面--->(应用程序)主屏幕
从主应用程序----->(应用程序)主屏幕
我正在将一组应用程序构建为类似于 MS Office 的包。在这里,每个应用程序都有自己的启动器,并且可以从主应用程序内部启动。每个应用程序都有一个登录页面。从android启动器启动应用程序时,我需要显示登录页面,而从家庭应用程序启动时不显示登录页面,我该如何实现?
我的场景:
从启动器----->(应用程序)登录页面--->(应用程序)主屏幕
从主应用程序----->(应用程序)主屏幕
您可以通过启动一个空的activity
(没有 UI)并在其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);
}
...
你应该总是开始LoginPageActivity
。但是,如果您从“家庭应用程序”启动它,只需将特殊的额外内容传递给 activtiy:
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
}
}
在家庭应用程序中,只需将“需要额外登录”作为 false 传递。
基本上类似于 tozka 所说的,但您也可以启动您期望更频繁地需要的活动,并在 onCreate 上检查您是否处于正确的活动中。如果不使用其他活动调用 startActivity 而之前没有膨胀任何视图等。因此,如果您的期望是正确的,那么在超过 50% 的情况下,您已经处于正确的活动中,从而使您的应用免于在启动时调用两个活动