Я использую AlarmManager для немедленного запуска Активности из Сервиса.
Активность начинается без задержки, даже если вы нажали кнопку «Домой» раньше.
Протестировано на Android 5.0.1 (Galaxy Alpha).
Не работает на 6.0.1 (Nexus 7 2013): - (
Не работает на 4.1.2 (Galaxy S II): - (
Не работает на 4.3 (ASUS MeMO Pad FHD 10 ME302C): - (
@TargetApi(Build.VERSION_CODES.KITKAT)
private void startActivity() {
Intent intent = new Intent(this, Main.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
long now = Calendar.getInstance().getTimeInMillis();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
alarmManager.setExact(AlarmManager.RTC_WAKEUP, now, pendingIntent);
else
alarmManager.set(AlarmManager.RTC_WAKEUP, now, pendingIntent);
}