how would you create an activity that only runs when the application is started for the first time ever and provides the user with a screen to input a pin and \"unlock\" the app
You can always start with something like "splash screen" activity, that will only check in database/ shared preferences if user is logged in. Then you can run login activity or not. Or in first activity you can show popup window with request of login.
You can use android preferences for show login screen only for the first time.
You can set flag in preference and check it when application start.
You can use sharedPreferences
:
boolean firstTime = prefs.getBoolean("firstTime", true);
if(firstTime) {
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", false);
editor.commit();
//do your first time "operations" here E.G read configuration, show user guide
}
By "application starting for the first time ever" I am assuming you mean the first time an Activity
appears on the display.
I usually test for the existence of a user preferences database. If it does not exist, then the application has not ever been active, and then I could prompt the user for a configuration update.
Look at the documentation for a PreferenceManager
to get started.