3

いくつかのアクティビティがあります。アクティビティ A、B、C としましょう。アクティビティ AI では、メニューを介して次のように B を呼び出しますonOptionsItemSelected

Intent main = new Intent (this, MainActivity.class);
this.startActivity(main);

今、私が B アクティビティにいるとき、同じ方法でAを呼び出すOnResumeことができます (Intent と startactivity を使用) 。OnRestartOnCreate

私はそれをログに記録していますが、アクティビティから別のアクティビティに移動するたびに、常にOnCreateメソッドが呼び出されます。何ができますか?

4

3 に答える 3

2

アクティビティAをmanifest.xmlで「singleTask」または「singleInstance」として構成します。次に、アクティビティBからアクティビティAを呼び出すと、アクティビティAのonResume()がonCreate()の代わりに起動されます(アクティビティAがすでに説明したようにインスタンス化されていると仮定します)。この種の構成には欠点があるので、これを読んでください

マニフェストの例:

<activity android:name=".YourActivityA"     
        android:configChanges="keyboardHidden|orientation"      
        android:launchMode="singleTask">
于 2013-02-03T23:03:32.907 に答える
0

OnCreate / OnResume/OnRestartメソッドが直接呼び出されるかどうかを制御することはできません。これは、前のアクティビティがまだメモリにあるかどうかに基づいています。

http://developer.android.com/guide/components/activities.html http://developer.android.com/images/activity_lifecycle.png

于 2013-02-03T22:06:59.653 に答える
0

ログに記録していますが、あるアクティビティから別のアクティビティに移動するたびに、常に OnCreate メソッドが呼び出されます。どうすればよいですか?

アクティビティ B からアクティビティ A に戻るには、以下を使用する場合:

  • startActivity()の場合、AonCreate()は常に呼び出されます。
  • finish()の場合、AonCreate()が呼び出される場合と呼び出されない場合があります。(A があなたによって破壊されたのか、OS によって破壊されたのかによって異なります。)
于 2013-02-03T22:09:02.130 に答える