10

Phonegap 1.5/Android アプリケーションを作成しました。

私のクライアントは、ホーム ボタンを使用してアプリを終了し、アプリ アイコンを使用して再起動すると、アプリが再開するのではなく、最初から再起動すると報告しています。ただし、ホームボタンを押したままにすると、アプリが最近のアプリに表示され、このメニューからアプリにアクセスすると、アプリは期待どおりに再開します。

メモリ不足でOSがアプリを自動終了させて​​いるのが原因かと思いましたが、そうであれば最近のアプリではクリックしてもアプリが再開しないはずです。

Android 2.3.4 を搭載した Sony Ericsson XPERIA でバグを再現できませんでした。クライアントは、Motorola Defy と別の電話でこの動作を経験しています (他の電話と OS バージョンの参照を追加します。それらを得る)。

アプリの初期化プロセスは次のように宣言されます。

window.addEventListener('load', function(){
      document.addEventListener('deviceready', _onDeviceReady, false);
}, false);

プロセスを他のイベントにアタッチすることでこれを修正できますか (私はそれを疑っていますが、アプリは最初から再起動されているようです)?

この動作を防ぐために Android マニフェストで行う宣言はありますか?

これが私の AndroidManifest.xml のアクティビティ署名です

    <application android:debuggable="true" android:icon="@drawable/appicon"
    android:label="@string/app_name" >
    <activity android:configChanges="orientation|keyboardHidden" android:name=".MyAppActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name" 
           android:configChanges="orientation|keyboardHidden">
     <intent-filter>
     </intent-filter>
    </activity>
</application>

これは一部の Android フォン/バージョンの既知のバグですか?

編集:ホームボタンを押したままにすると、現在実行中のアプリではなく、最近のアプリが表示されます。そのメニューの動作がメイン アイコンと異なるのはなぜですか?

4

5 に答える 5

7

AndroidManifest.xml のアクティビティ タグに次を追加します。

android:launchMode="singleTask"

したがって、次のようになります。

<activity android:name="MyApp" android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
    android:launchMode="singleTask">

launchMode の詳細については、このページをご覧ください: http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

于 2013-05-09T13:19:30.463 に答える
3

ルーカスさん、持っていますか?

android:configChanges="orientation|keyboardHidden"

AndroidManifest.xml のアクティビティ タグに。

あなたが言ったように、クライアントの電話のメモリが不足していて、OS がアプリを強制終了してメモリを解放している可能性があります。

于 2012-04-12T14:31:16.053 に答える
2

これは実際には、OS がアプリケーションのライフサイクルを制御する Android の設計によるものです。詳細については、こちらをご覧ください

于 2012-04-12T11:24:46.093 に答える
-1

Samsung Galaxy Note II を使用していますが、同じ問題に遭遇しました。そのため、AndroidManifest.xml を変更したところ、Samsung と HTC Thunderbolt の両方で動作するようになりました。

変更点は次のとおりです。

<uses-feature android:name="android.hardware.camera" android:required="false"/>

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>

<activity  android:configChanges="orientation|keyboardHidden" />
于 2013-03-06T20:57:24.023 に答える