アプリに 1 回限りの EULA とパスワード作成画面を実装しようとしています。
私はこれをできるだけクリーンでシームレスにするよう努めています。私の現在の実装には、設定する必要がある SharedPreference が含まれています。設定されていない場合は、EULA とパスワード作成画面が表示されます。
/**
*
* @param context
* @return
*/
public static boolean isFirstLaunch(Context context) {
SharedPreferences reader = context.getSharedPreferences(
PREFERENCES, Context.MODE_PRIVATE);
String apiKey = reader.getString(APIKEY, "");
return apiKey == "";
}
ユーザーが EULA への同意を完了し、パスワードを作成すると、API キーが設定されます。ただし、以前のアクティビティがまだ起動/アニメーション化されていることがわかります。そのため、最初のアクティビティでアニメーションを削除しようとしましたが、まだ運がありません。
アクティビティでは:
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
if (InitialLoading.isFirstLaunch(this)) {
Intent intent = new Intent(this, EndUserAgreementActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
//getWindow().setWindowAnimations(0);
overridePendingTransition(0,0);
finish();
return;
}
if (InitialLoading.isPasswordLoginEnabled(this)) {
}
Intent intent = new Intent(this, OverviewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
finish();
}
すべてのシナリオで 1 つのアクティビティのみが開始されたかのように見せる方法を知っていますか?
- (表示しないでください)起動されたアクティビティ -> EULA -> パスワードの作成 -> 起動された/その他のアクティビティ
- (表示しないでください)起動されたアクティビティ -> 認証画面 -> 起動された/その他のアクティビティ
- 開始された活動
現在、EULA を起動しようとすると、以前のアクティビティのちらつきが表示されます。Whatsapp を確認したところ、EULA 以外のアクティビティを起動するとそのアプリがちらつきます。これが可能かどうか疑問に思います。
認証オプションが有効になっている場合に起動するパスワード画面を無効にする設定画面が既にあるので、心配する必要はありません。
とにかく、助けてくれてありがとう。