7

私のアプリケーションでは、アクティビティ A はランチャー アクティビティであり、A からは B と呼ばれ、B からは C と呼ばれ、5 つ以上のアクティビティがあります。Cでホームボタンを押してアプリを開くと、Cが開きます。私の場合は問題ありません。しかし、Cでホームボタンを押した後、しばらくアイドル状態でアプリケーションが強制終了された後、アプリを開くとCが開きます。しかし、その時にメインランチャーアクティビティを開きたいです。これどうやってするの?

A > B > C > HOME ボタン > しばらくアイドル状態 > アプリケーションが強制終了 > アプリを開く > C.

この場合、C の代わりにメイン アクティビティ A を開きたいと思います。

4

8 に答える 8

0

android:clearTaskOnLaunch="true"アクティビティ A のマニフェストを配置して、ランチャーが常にそのアクティビティに移動するようにすることができます。

于 2012-09-11T05:56:40.063 に答える
-1

ホームを押すと、アプリをバックグラウンドで実行したまま、アプリからホーム画面に切り替わります。

ただし、メモリなどのリソースが不足している場合は、バックグラウンドで実行されているアプリを閉じ始めるため、現在実行しようとしている操作に十分なリソースが携帯電話に確保されます。ゲームは多くの場合、他のアプリよりも多くのメモリと CPU を使用するため、電話がリソースを節約するために最初に「強制終了」するアプリの 1 つです。これが、ゲームが一時停止したまま実行されたり、Android がゲームを終了したりする理由です。

于 2012-09-11T05:43:11.647 に答える
-2

あなたのアプリがシステムによって強制終了された場合、私はそれがcから始まるとは思わない. タスクキラーアプリでそれを殺していれば、それは間違いです. アプリの設定から強制的に停止してから確認してください。ただし、タスクキラーアプリによって強制終了された場合は、C から B に戻ってクラッシュしている場合は、結果コードを確認してください。resultcode != RESULT_OK の場合、ここでコードを処理してアプリをクラッシュから救うことができます。結果のアクティビティを開始していない場合は、B と c を開始する前に B と A を終了します。

于 2012-09-11T06:16:21.640 に答える
-2

ホームを押すと、アクティビティが終了していないため、スタックにまだ存在します。一時停止するだけなので、これを使用してください。

アクティビティ A からアクティビティ B を呼び出し、B から C を呼び出している場合

A->B

A から startactivityforresult を使用する

そして再びB->C

B から startactivityforresult を使用する

C から終了する場合は、setResult(つまり RESULT_OK) を実行して C を終了し、B の OnActivityResult() で、resultcode == RESULT_OK かどうかを確認してから、B を終了し、A に対して setresult(RESULT_OK) を実行します。同じ手順に従って終了します。 A.

これによりアプリケーションが終了し、アプリケーションは C ではなく A から開始されます。

于 2012-09-11T05:46:00.093 に答える