问题描述
在某些非常有限的情况下,我会在隐式广播接收器的 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 秒后他们也在使用该应用,因此该窗口似乎不够大,无法进行任何类型的睡眠或唤醒锁问题。我也不认为用户可以设法在应用程序调用 startActivity
和 onCreate
之间将应用程序刷出内存,这种情况偶尔发生(对于这个用户,发生了 6 次中的 1 次).
该应用适用于繁忙的、连接电源的销售点设备。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)