关于Android中的启动

时间:2015-07-09 16:13:51

标签: android

现在,InitialActivity被设置为AndroidManifest.xml文件中的主要活动。

    <activity
        android:name=".ui.SplashActivity"
        android:noHistory="true" >
    </activity>

    <activity
        android:name=".ui.InitialActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".ui.LoginActivity"
        android:noHistory="true" >
    </activity>

    <activity
        android:name=".ui.RegisterActivity"
        android:noHistory="true" >
    </activity>

    <activity
        android:name=".ui.MainScreenActivity"
        android:launchMode="singleTop">

    </activity>

在RegisterActivity中完成注册过程后,退出应用程序并重新启动应用程序,我希望应用程序直接转到MainScreenActivity自动登录。所以这是检查是否是InitialActivity类的一部分如果我是,我登录并转到MainScreenActivity。

    session = new SessionManager(getApplicationContext());
    // check if user is already logged in.
    if(session.isLoggedIn()) {
        // User is already logged in. Take him to MainScreenActivity.
        Intent intent = new Intent(InitialActivity.this, MainScreenActivity.class);
        startActivity(intent);
        finish();
    } else {
        startActivity(new Intent(this, SplashActivity.class));
    }

到目前为止,我设法使用上面的代码直接进入MainScreenActivity,但在这种情况下我错过了启动。如何修改代码,以便即使在自动登录后仍然可以看到SplashActivity?

仅供参考,这是SplashActivity类代码。

public class SplashActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    Handler hd = new Handler();
    hd.postDelayed(new Runnable() {
        @Override
        public void run() {
            finish();
        }
    }, 1500);
}

}

1 个答案:

答案 0 :(得分:0)

我将使用splashActivity作为启动器活动(它将每次启动),如果用户是否已登录,我将检查此活动,具体取决于响应启动RegisterActivity或mainActivity