0
私のアプリケーションでは、パスワード画面を実装しましたが、アクティビティAまたはアクティビティBを表示するかどうかを確認する必要があります。このチェックは明らかに共有設定の結果ですアプリケーションを開くときに目立った遅れがあります - コードは下に表示されていますが、これを最適化して遅れずにすばやく開く方法を教えてください。UIスレッドの共有設定を読み込みます
ランチャー活性
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean loggedIn = PreferenceUtils.getBoolean(LauncherActivity.this, PreferenceUtils.LOGGED_IN_STATE);
boolean passwordEnabled = PreferenceUtils.getBoolean(LauncherActivity.this, PreferenceUtils.APPLICATION_PASSWORD_ENABLED);
Log.d(TAG, "LOGGED IN: " + loggedIn + " " + "PW: " + passwordEnabled);
if (!loggedIn) {
// Start Login Activity
Intent intent = new Intent(LauncherActivity.this, ApplicationIntro.class);
startActivity(intent);
//PreferenceUtils.clearPreferences(LauncherActivity.this);
} else {
if (passwordEnabled) {
// Start Password Activity
Intent intent = new Intent(LauncherActivity.this, PasswordActivity.class);
startActivity(intent);
} else {
// Start Main Activity
Intent intent = new Intent(LauncherActivity.this, MainActivity.class);
startActivity(intent);
}
}
finish();
}
パスワードアクティビティ
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password);
setupActionBar();
setupPreferences();
findViews();
setupValues();
setListeners();
}
...
private void setupPreferences() {
attemptsRemaining = PreferenceUtils.getInt(PasswordActivity.this, PreferenceUtils.APPLICATION_PASSWORD_ATTEMPTS);
storedPassword = PreferenceUtils.getString(PasswordActivity.this, PreferenceUtils.APPLICATION_PASSWORD);
duressPassword = PreferenceUtils.getString(PasswordActivity.this, PreferenceUtils.DURESS_PASSWORD);
}
好ましいUtilsの
public static void saveString(Context context, String key, String value) {
SharedPreferences preferences = new SecurePreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.apply();
}
public static String getString(Context context, String key) {
SharedPreferences preferences = new SecurePreferences(context);
return preferences.getString(key, "");
}
public static void saveBoolean(Context context, String key, boolean value) {
SharedPreferences preferences = new SecurePreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(key, value);
editor.apply();
}
public static boolean getBoolean(Context context, String key) {
SharedPreferences preferences = new SecurePreferences(context);
return preferences.getBoolean(key, false);
}
お返事ありがとうございます。あなたはこれをすることを提案する方法のいくつかのコードを提供することができますか?以前はAsyncTaskを使ってこれらの値をロードしていましたが、パスワードのアクティビティでは、ユーザーは実際にonPostExecuteの結果として更新中のコンテンツを見ることができます。したがって、これをアドバイスする方法についていくつかのコードを提案できれば、それは素晴らしいだろう - ありがとう。また、LauncherアクティビティのonCreateは、そのファイル内に唯一のコードで、PasswordActivityにはビューがあります(ユーザーがパスワードとTextViewを入力するためのEditText) –
app.whenアプリケーションの流れどのアクティビティが最初に起動し、その後に起動します! –
ランチャーアクティビティ>共有プリファレンスを使用してイントロアクティビティまたはパスワードアクティビティを表示するかどうかを確認する>パスワードアクティビティ>共有プリファレンスが保存されたパスワードを取得してユーザーの入力をチェックする –