우선 BroadCastReceiver를 사용해서 화면이 켜지거나 기타 상황에서 어플을 체크하는 로직을 구현할 수 있고, 또는 Service를 구동시켜서 주기적으로 체크해도 되구요..
앱이 실행중인지 확인하는데 안드로이드 6까지는 ActivityManager의 getRunningAppProcesses() 를 사용하면 될 것이고, 안드로이드 7부터는 UsageStatsManager로 최근 데이터를 기준으로 판단(실행중인지 아닌지)해야 될 것 같네요. ^^