正常にログインした後にアクティビティを再起動することができます。また、ユーザーのログインに別のアクティビティーを別々に使用している場合は、リダイレクト先の特定のアクティビティーを起動できます。そして、その活動は再初期化されます。
ユーザーデータの永続性要因、またはその特定の瞬間における他のユーザー状態が心配な場合は、saveInstanceStateを使用して、アクティビティを再初期化した後に同期させることができます。しかし、今回は、アクティビティに、プロファイルpic、名前、性別などのログインしているユーザーの情報の一部が含まれます(可能性があります)。
、あなたはあなたがあなたの現在を保存することができ、コードsnippet-
public void refreshActivity (View v){
Intent intent = getIntent();
finish();
startActivity(intent);
}
の下にこれを使用することができます活動状態 -
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android");
// etc.
}
したがって、アクティビティに関連するキーと値のペアとして情報を入力することで、インスタンスの状態を保存できます。その後、同じ保存データから元に戻します。
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
int myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}
私はあなたの参照のためのオリジナルの答えの linkを入れています。これがあなたの問題を解決することを願っています。
A - > B - > C - >いくつかのケースAにログイン - > D - > F - >他のケースAにログイン - > E - > G - >のログイン が今クリアすべてのバックスタック午前新しいAユーザーを移動する ログイン後のユーザーC/F/Gに戻ってセッションを使用するすべてのアクティビティをリフレッシュして画面を作成します。アクティビティBがユーザープロファイルを表示することをより明確に想定しますpicログイン後、セッションの詳細を使用するすべてのスタックアクティビティをリフレッシュし、ログイン後にリフレッシュしたい場合は、すべてのバックスタックを削除して新しいAに移動します。 最適なアプローチは何ですか? – Peter