现在,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);
}
}
答案 0 :(得分:0)
我将使用splashActivity作为启动器活动(它将每次启动),如果用户是否已登录,我将检查此活动,具体取决于响应启动RegisterActivity或mainActivity