0

私は 2 つのアクティビティを持っています... 1 つはアプリケーション A に、もう 1 つはアプリケーション B にあります。

A アプリから B アプリにアクティビティを呼び出しているため、A アプリ アクティビティは一時停止し、B アプリ アクティビティにインテントをスローし、B アプリ アクティビティの後、再び A アプリ アクティビティに戻るので、アプリ アクティビティは再起動時または再起動から開始する必要があります。 onResume() は onPause() と同じですが、oncreate() になります。戻るボタンを押すと、再開または再起動の状態から開始されるため、A アプリのアクティビティは破棄されていないと確信しています。

基本的に、2 つのアプリ アクティビティは、A アプリ アクティビティ - B アプリ アクティビティ - A アプリ アクティビティ - B アプリ アクティビティのように循環的に実行されます。すぐ

もう1つ私が思うに、戻るボタンを押してもそれらのどれも破壊されず、再開状態になるので何も殺されません。

私の移行をする方法はありますか -

A アプリ アクティビティ - B アプリ アクティビティ ( A 一時停止状態 - B 作成状態) B アプリ アクティビティ - A アプリ アクティビティ ( B 一時停止状態 - A 再開状態)

注: 差分アプリからの 2 つのアクティビティ

4

2 に答える 2

1

その多くは、あるアクティビティから別のアクティビティに移動する方法と、それらをマニフェストでどのように宣言したかによって異なります。

これ以上のコードがない場合は、こちらのドキュメントを読むことをお勧めします。特にtaskAffinitylaunchMode

于 2013-01-11T14:58:35.540 に答える
0

もう一度アプリアクティビティに戻るので、アプリアクティビティはonPause()の場合と同じようにonrestartまたはonresume()から開始する必要がありますが、oncreate()になります。

@Eigorが述べたように、この場合、オペレーティングシステムは停止した(表示されておらず、現在のプロセスのアクティビティスタックのどこかにある)アクティビティを叫ぶことができます-Android OSは、通過せずにアクティビティを叫びonDestroy()onSaveInstanceState()ますが、コールバックを通過します戻るボタンを押したときにアクティビティが再作成されるときに、復元したいデータ状態を保持する機会を与えてくれます。以前に保存したデータは、のバンドルパラメータに保存されますonCreate()

読む-http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState (android.os.Bundle )

それがOSの振る舞いを知らなかったので、奇妙に感じたと思います。その知識を知り、それを考慮に入れることはあなたの問題を解決するはずです

戻るボタンを押すと再開または再開状態から開始するため、Aアプリのアクティビティは破壊されなかったと確信しています。

このシナリオでアプリのアクティビティが破棄されなかったという事実は、信頼できるものではなく、前に述べたことと矛盾しません。onDestroy同じ理由で呼び出されることなく、OSから叫ばれる場合もあります。

AとBの間でやりたいすべての循環について:私が書いたものは、なぜそれが期待どおりに機能しなかったのかを理解するのに役立つと思います...

于 2013-01-11T15:39:29.670 に答える