遇到的例子:XX新闻
大致流程: 收到灭屏广播,起动HollowActivity, 周期设置alarm触发启动 HollowActivity(避免类似应用).
(亮屏finish HollowActivity, 避免被发现).
关键Log:
05-21 16:33:37.017929 18641 18641 I KeepAlive: onReceiveScreenBroadcast [android.intent.action.SCREEN_OFF]
05-21 16:33:37.220872 18641 18641 I KeepAlive: onShowOffScreenActivity
05-21 16:33:37.237014 13652 14439 I ActivityManager: START u0 {flg=0x10000000 cmp=com.tencent.news/.push.alive.offactivity.HollowActivity} from uid 10178
05-21 16:33:39.023445 18641 18641 I KeepAlive: onCheckState
05-21 16:33:39.026202 18641 18641 I KeepAlive: Check Push Process Importance [300], isFocus [false].
05-21 16:33:39.026496 18641 18641 I KeepAlive: onShowOffScreenActivity
05-21 16:33:39.033350 13652 14608 I ActivityManager: START u0 {flg=0x10000000 cmp=com.tencent.news/.push.alive.offactivity.HollowActivity} from uid 10178
但灭屏启动Activity,Android会pause该Activity
灭屏启动时触发Pause的log:
05-21 16:18:37.952 8746 10752 V ActivityManager: Sleep needs to pause ActivityRecord{494f8a7 u0 com.tencent.news/.push.alive.offactivity.HollowActivity t178}
灭屏启动的栈:
29560:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStack.goToSleepIfPossible(ActivityStack.java:1429)
29561:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStack.checkReadyForSleep(ActivityStack.java:1402)
29562:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStack.checkReadyForSleepDelayed(ActivityStack.java:1410)
29563:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStack.resumeTopActivityUncheckedLocked(ActivityStack.java:2501)
29564:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2377)
29565:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.resumeTargetStackIfNeeded(ActivityStarter.java:2485)
29566:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1703)
29567:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:1459)
29568:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:1060)
29569:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:695)
29570:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1358)
29571:05-21 16:33:39.056839 13652 14608 D ActivityManager: at com.android.server.am.