我是 Android 上的新开发人员。我有一个在多个 Android 设备上运行的应用程序,但我发现在具有 4.0.3 android 版本的 Sony Tablet S 上的活动生命周期上有一个奇怪的行为。我的应用程序有一个启动 B 活动的 A 活动,问题是当 B 启动时,A 被暂停并销毁,而在其他设备中被暂停并恢复。当我通过返回按钮从 B 活动返回时,必须再次创建 A。
任何想法?我已经搜索了很多关于这个问题,但我没有发现任何类似的问题。提前致谢!
我是 Android 上的新开发人员。我有一个在多个 Android 设备上运行的应用程序,但我发现在具有 4.0.3 android 版本的 Sony Tablet S 上的活动生命周期上有一个奇怪的行为。我的应用程序有一个启动 B 活动的 A 活动,问题是当 B 启动时,A 被暂停并销毁,而在其他设备中被暂停并恢复。当我通过返回按钮从 B 活动返回时,必须再次创建 A。
任何想法?我已经搜索了很多关于这个问题,但我没有发现任何类似的问题。提前致谢!
Activity 是否被销毁由 Android 操作系统决定,不仅取决于您的设备,还取决于当前的内存使用情况。在具有较小内存单元的设备上或者如果有其他应用程序占用内存(也许应用程序不会被破坏,因为它们是索尼修改后的操作系统的一部分),您的活动被更快地破坏的可能性不大。这可能会发生,尤其是如果您的活动 A 使用位图的权重很大...
我观察到与 Sony Xperia Z 相同的问题。我的调用活动(A)有意调用本机相机(使用 startActivityForResult(..))。我观察到的是 A 被破坏,当使用相机 onActivtyResult(..) 完成时,A 被调用。
我仍在试图弄清楚如何解决这个问题。
我用来创建和显示活动 B 的代码如下:
legendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
final Intent intent = new Intent(MainActivity.this, LegendActivity.class);
intent.putExtra(Constants.LEGEND, _legenditems);
startActivity(intent);
}
});