我正在使用 AIR 3.3 SDK 在 Adobe Flex 中创建一个跨平台应用程序。对于 Android,我创建了一个原生扩展,它通过触发 Intent 来启动一个带有简单视图的原生 android 活动。
问题是,当我们通过从应用程序菜单中选择应用程序图标或通过长按主页按钮来获取最近应用程序列表来最小化应用程序并恢复它时,Android 会自动调用本机 android 活动的 onDestroy 并将其杀死。相同的场景在 Android 4.0 上运行良好。该问题仅在 Android 2.x 设备上发生。我们还不能测试蜂窝。
阅读 Android 文档后,我了解到 onDestroy 要么在有人调用完成活动时调用,要么在设备空间不足时调用。而且,为了区分两者,可以使用 isFinishing() 方法。如果活动已通过调用完成被破坏,这将返回 true。
在我们的例子中,在上述场景中,没有调用活动的完成函数。当应用程序恢复但 isFinishing() 仍然返回true时调用onDestroy。这表明该应用程序的内存并不低。我尝试将各种标志添加到意图中,但没有任何改变行为。
我不知道从哪里可以调用 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 问题,但无法解决这个问题。请帮忙。