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