4

私は小さな Android アプリケーションを開発しましたが、最近奇妙な動作を発見しました。

usb と eclipse を使用してこのアプリをインストールした後、任意のアクティビティに移動すると、アプリを離れて、Android のホーム画面または別のアプリケーションに移動し、アプリケーションを再度「開始」して、前述の任意のアクティビティに直接戻ることができます。

しかし、apk ファイルをダウンロードして電話にアプリケーションを直接インストールすると、別のアプリケーションまたは Android のホーム画面に切り替えた後、このアプリに戻ると、常にアプリケーションのルート アクティビティに戻ります。

この動作がどこから来たのか、またはこの問題を修正する方法を誰かが知っていますか?

更新:どちらの場合も、実際のハードウェアでアプリケーションを実行します。

4

3 に答える 3

7

次のコードをルートアクティビティに配置すると、この問題が最終的に修正されました。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
        // Activity was brought to front and not created, 
        // Thus finishing this will get us to the last viewed activity 
        finish(); 
        return; 
    } 

}

出典: バックグラウンド状態を再開するのではなく、アプリが常にルート アクティビティから新たに開始する (既知のバグ)

于 2012-12-21T14:06:26.207 に答える
4

一度だけ表示したい特定のmanifestファイルに配置します。android:launchMode="standard"activity

于 2012-12-21T09:32:25.563 に答える
1

これは、システムがアプリケーションを処理する方法によるものです。

他のアプリケーションの必要に応じてアプリケーションを破棄するのは、完全にシステム次第です。

エミュレーターで実行すると、アプリケーションが破壊されないため、元の状態から再開しActivityます。

しかし、デバイスで実行すると、アプリケーションが占有しているメモリを解放する必要があるとデバイスが判断し、アプリケーションが破棄される場合があります。そして次に起動するときは、最初から起動します。

于 2012-12-21T09:35:20.270 に答える