广播接收器中的 context.startActivity 有时不起作用SDK 27 设备上的 targetSDK 19

问题描述

在某些非常有限的情况下,我会在隐式广播接收器的 startActivity 函数中调用 onReceive

Intent transactionIntent = new Intent(context,TransactionActivity.class);
transactionIntent.putExtra(Constants.Extras.ORDER_ID,orderId);
transactionIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(transactionIntent);

我在此行之前有日志并登录了活动的 onCreate 函数。一些客户报告了此活动的随机实例,而不是自行创建。我可以在日志中看到 startActivity 被调用而 onCreate 没有被调用。我肯定知道其中一个是 Android 8.1 Oreo 设备。我的目标 SDK 是 19(绝大多数是旧设备,这不是 Play 商店中的应用程序)。我还可以告诉应用程序的系统设置中的后台活动切换没有关闭,所以这不是问题。

这种情况会在什么情况下发生(内存压力极大?),我如何捕获它以验证发生了什么?

编辑:

应用没有崩溃(此版本的应用没有记录崩溃,并且在记录活动创建之前除了 setContentView 什么也不做)。我不认为设备睡眠是一个问题,因为我的目标是 pre M,打瞌睡模式等没有发挥作用。用户在调用 startActivity 失败前几秒钟还在使用该应用,30 秒后他们也在使用该应用,因此该窗口似乎不够大,无法进行任何类型的睡眠或唤醒锁问题。我也不认为用户可以设法在应用程序调用 startActivityonCreate 之间将应用程序刷出内存,这种情况偶尔发生(对于这个用户,发生了 6 次中的 1 次).

该应用适用于繁忙的、连接电源的销售点设备。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)