0

私のアプリは異なるアクティビティを切り替えます。各アクティビティは、別のアクティビティに切り替えた後に強制終了されます。これは完全に正常に機能しますが、私がやろうとしているのは、ユーザーがアプリを強制終了したとき(Backキーを押すか、その他の方法で)、最後に実行されたアクティビティが次にアプリを起動したときです。

私は試した ...

onSaveInstanceState(Bundle bundle)

...しかし、これは他のアクティビティでは機能しないようです。

これを行う別の方法はありますか?マニフェストを直接編集することも考えましたが、おそらく機能せず、非常に汚れていると結論付けました。

4

1 に答える 1

1

たとえば、私が理解していることから、あなたには3つのアクティビティがあります: ActivityA、、。ユーザーがを介してアプリを終了し、後でアプリを再起動する場合は、最初に起動する必要があります。ActivityBActivityCActivityBActivityB

これは2つの方法で実行できます。

まず、3つのフラグメントActivityのうちの1つのプレースホルダーを持つシングルを作成できます。次に、必要に応じてフラグメントを置き換えることができます。

次に、を使用して、最後に開いたアクティビティを設定に保存できますSharedPreferences。あなたはあなたが持っているonStart()それぞれの中でこれを行うことができActivityX、どの活動を開始するかを決めるときにそれを読み上げることができます。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

// save:
Editor edit = prefs.edit();
edit.putString("lastActivity", getClass().getName());
edit.commit();

// restore later:
String activityName = prefs.getString("lastActivity", YourActivityA.getClass().getName());

// if(activityName == null)activityName = YourActivityA.getClass()。getName(); ///必要に応じてそのアクティビティを開始します

于 2013-02-18T18:07:48.633 に答える