create a LauncherActivity class where you can make the decision which Activity should start - PreferenceActivity, or MainActivity: check this advice also
public class LauncherActivity extends Activity {
SharedPreferences settings;
public void onCreate(Bundle savedInstanceState) {
settings = getSharedPreferences(PREFS_NAME, 0);
if (settings.getBoolean(PREFS_REG, false)) {
startActivity( new Intent(this, MAinActivity.class) );
finish();
} else {
Intent enableBtIntent = new Intent(this, PreferenceActivity.class);
startActivityForResult(enableBtIntent, SETTINGS);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == SETTINGS ) {
startActivity( new Intent(this, MAinActivity.class) );
Editor editor = settings.edit();
editor.putBoolean(PREFS_REG, true);
editor.commit();
finish();
}
}
}
And if user "registered" then set the PREFS_REG to true in onActivityResult()