我们有一个传统的Android应用程序,它最近开发了一个疯狂的bug。它不会影响许多用户,但会破坏所有需要管理和支持的功能。它已经很糟糕了,必须修复它。我们无法重现该错误,也没有记录。
目前的团队没有太多或任何Android经验,也不熟悉代码库。
该应用有三种状态:
某些东西导致应用程序从状态(1)转到状态(2),即令牌丢失或被删除。在此之后,应用程序保持在状态(2)。
该应用程序可以通过可浏览的意图启动,该意图将删除所有令牌并“重新激活”它。这将从状态(1)发送到状态(2)。
意图过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="myscheme" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
开始代码:
public void onStart() {
super.onStart();
Uri activationUrl = getIntent().getData();
boolean busyActivating = (activationUrl != null);
if (busyActivating) {
// delete tokens
// save activation url
// state - activated no tokens
} else if (isActivated()) {
startNormally();
} else {
askToActivate();
}
}
对我而言看起来就像有某种类型的流氓意图导致并激活app进入 busyActivating 流程。
我能够通过强制意图两次来复制它,但已经确认用户没有这样做。
这一切都可能吗?还有其他事情发生在这里吗?
编辑:我们无法弄清楚为什么会发生这种情况,最后我只是将代码更改为更强大并希望获得最佳效果。 即使这个问题会变老而死,如果你将来遇到这个问题,请回答你是否遇到过类似的问题!