2

AIR 3.3 SDK を使用して Adob​​e Flex でクロスプラットフォーム アプリを作成しています。Android の場合、Intent を起動することで単純なビューを含むネイティブ Android アクティビティを起動するネイティブ拡張機能を作成しました。

問題は、アプリを最小化し、アプリ メニューからアプリ アイコンを選択するか、ホーム ボタンを長押しして最近のアプリのリストを取得することでアプリを再開すると、Android が自動的にネイティブ android アクティビティの onDestroy を呼び出して強制終了することです。Android 4.0 でも同じシナリオで問題なく動作します。この問題は、Android 2.x デバイスでのみ発生しています。ハニカムはまだテストできていません。

Android のドキュメントを読んだ後、onDestroy は、誰かがアクティビティの終了を呼び出したとき、またはデバイスの空き容量が少なくなったときに呼び出されることを理解しています。そして、両方を区別するには、 isFinishing() メソッドを使用できます。これは、finish を呼び出してアクティビティが破棄された場合に true を返します。

私たちの場合、上記のシナリオでは、アクティビティの終了関数は呼び出されませんアプリが再開するとonDestroyが呼び出されますが、 isFinishing() はtrueを返します。これは、アプリのメモリが不足していないことを示しています。インテントにあらゆる種類のフラグを追加しようとしましたが、動作は何も変わりません。

onDestroy 関数を他にどこから呼び出すことができるのかわかりませんか? アプリの再開時にネイティブ アクティビティが破棄されないようにする方法を見つける必要があります。

ネイティブ アクティビティを起動するコードは次のようになります。

Intent intent = new Intent("android.intent.action.K12");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("params", parameters);
context.getActivity().startActivity(intent);

マニフェストのアクティビティのエントリは次のようになります。

<activity android:name="com.k12.main.MainActivity">
     <intent-filter>
         <action android:name="android.intent.action.K12" />
             <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
</activity>

多くのブログや SO の質問を読みましたが、この問題を回避できませんでした。助けてください。

4

0 に答える 0