0

ある時点でMainActivityを起動するクラスがあります。RaceActivity後でRaceActivity終了する場合はMainActivity、すべてのビューを返します。ただし、毎回新しく作成されるようです。の適切なセクションを実装しましたonOptionsItemSelectedが、戻るボタンをクリックすると毎回新しいインスタンスが取得されるか、少なくともプログラムで追加されたビューがなくなります。これを修正するにはどうすればよいですか?

明確にするために編集:

これらのビューを復元するためにバンドルで onCreate を使用しても問題ありませんが、オブジェクトの同じインスタンスを再作成すると自動的に起こると思いました。アクティビティが再作成されたときに、プログラムで作成されたビューを保持したい。または、ユーザーがアクティビティに戻ったときにアクティビティの破棄を停止したい。(テストしましたが、使用が戻るとすぐに破棄されます。)

4

2 に答える 2

0

それがあなたを助けるなら、私の答えを受け入れてください。解決策を見つけるのに何時間もかかります..

onBackPressed() をオーバーライドする

Intent intent = new Intent(FromAnyActivity.this, CurrentActivity.class);

            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

            startActivity(intent);

コードを挿入します。アクティビティをスタックから並べ替え、ビューとデータは元の場所に残ります。SingleInstance 起動モードを追加する別の方法がありました..これらのリンクを読むと役立つ場合があります..

于 2014-06-17T14:05:26.623 に答える
-2

AndroidManifest ファイルの MainActivity 宣言に以下を追加します。

android:launchMode="singleTask"

Android API によると、この追加の目的は次のとおりです。新しいものを作成するのではなく、その onNewIntent() メソッドを呼び出すことによって。」

上記がうまくいかない場合は、これも AndroidManifest ファイルの MainActivity に追加してみてください。

android:alwaysRetainTaskState="true"

Android API によると、この追加の目的は次のとおりです。「アクティビティが存在するタスクの状態がシステムによって常に維持されるかどうか — 維持される場合は「true」、システムが許可されている場合は「false」特定の状況でタスクを初期状態にリセットします。既定値は "false" です。この属性は、タスクのルート アクティビティに対してのみ意味があります。他のすべてのアクティビティでは無視されます。

于 2013-08-26T03:02:50.080 に答える