gpt4 book ai didi

android - 放在后台时,React-Native 应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 00:53:53 24 4
gpt4 key购买 nike

我正在编写一个通过表格 (react-native-table-component) 和图表 (react-native-chart-svg) 呈现一堆数据的应用程序。原始基础数据的重量可能约为 150 kB。

当我将应用置于后台时,它会崩溃:

Fatal Exception: java.lang.RuntimeException
android.os.TransactionTooLargeException: data parcel size 852488 bytes

我猜可能是因为我的Activity(我只有一个)使用了savedInstanceState:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
_askForOverlayPermission();
}

当我将我的应用程序置于后台时,它会尝试保存太大的状态。目前,状态数据包含每个“数据 block ”的 ID,然后是与该 block 对应的数据(权重更大)。我想知道是否有办法说:“如果应用程序要在后台运行,则删除所有数据,只保留 ID,这样它就不会崩溃?

非常感谢。

最佳答案

我认为问题不在您的onCreate 函数中。 onCreate 基本上是生命周期函数,在您初始化 Activity 或启动 Activity 时调用。如果您在应用程序进入后台时遇到异常,请密切注意 onPauseonDestroy 函数。我猜这两个正试图将一些 Intent 传递给导致错误的其他 Activity 或服务。

因此,您可以考虑在 Activity 的 onPause 方法中编写一些代码,这会将 ID 保存在 SharedPreferences 或某些数据库中。然后当您再次返回并再次恢复您的应用程序时,将调用 onResume 函数并从 SharedPreferences 或数据库(无论您之前保存数据的位置)中保留您的 ID .

要了解如何将数据保存在 SharedPreferences 中,这里是 developer's documentation .当然,我建议您查看 activity lifecycle也。

关于android - 放在后台时,React-Native 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56713691/

24 4 0