fix(mmp): 停止反复强跳红包历史页,避免打断前台使用

领取台恢复改为仅拉起 TNG 前台;Hook 侧限次/冷却,已在历史页不再重复打开。
This commit is contained in:
mars
2026-08-06 16:45:53 +08:00
parent ae65351d8e
commit 3fe84a8dd3
3 changed files with 41 additions and 13 deletions

View File

@@ -367,7 +367,8 @@ public class MmpClaimActivity extends MiracleGardenActivity<ActivityMmpClaimBind
}
/**
* TNG 还在跑但 Hook 长时间无心跳:先唤醒/进历史页,仍无效再强停重开。
* TNG 还在跑但 Hook 长时间无心跳:仅把 TNG 拉到前台(不强进历史页),
* 仍无效再强停重开。历史页跳转只由 Xposed 短 bounce会自动 finish避免一直把人拽进历史页。
*/
private void maybeRecoverStaleHook() {
long hookAt = MmpHookStatus.lastAliveAt(this);
@@ -377,26 +378,23 @@ public class MmpClaimActivity extends MiracleGardenActivity<ActivityMmpClaimBind
return;
}
long now = System.currentTimeMillis();
boolean bounce = MmpLocalSettings.load(this)
.optBoolean("autoBounceHistoryOnDisconnect", true);
if (hookRecoverStep == 0) {
if (now - lastHookRecoverAt < 45_000L) {
if (now - lastHookRecoverAt < 90_000L) {
return;
}
lastHookRecoverAt = now;
hookRecoverStep = 1;
boolean ok = bounce
? TngProcessHelper.openMoneyPacketHistory(this)
: TngProcessHelper.launch(this);
// 不强进 MoneyPacketHistoryActivity用户已在 App 内时会被反复打断
boolean ok = TngProcessHelper.launch(this);
if (ok) {
Toast.makeText(this, "Hook 无心跳,正在唤醒 TNG…", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Hook 无心跳,已尝试唤醒 TNG 前台", Toast.LENGTH_SHORT).show();
}
return;
}
if (hookRecoverStep == 1) {
if (now - lastHookRecoverAt < 90_000L) {
if (now - lastHookRecoverAt < 2 * 60_000L) {
return;
}
// 唤醒后仍无心跳 → 强停重建

View File

@@ -528,7 +528,7 @@
android:layout_marginTop="4dp"
android:buttonTint="#C45C26"
android:checked="true"
android:text="检测不到 Hook 连接时:自动进一下红包历史页再返回(约 45 秒最多一次"
android:text="Hook 断线时短进历史页再建连(约 2 秒后自动返回;已在历史页不会重复打开"
android:textColor="#222222"
android:textSize="13sp" />