Предупреждение о запуске, вызванное из службы неинформационного контекста, при запуске намерения извещения

У меня есть service, который запускает notification с startForeground(), я хочу, чтобы уведомление запускало действие при нажатии. acitivty Я хочу запустить определенную как android:launchMode="singleTask" и обычно запускается до запуска службы. Вот мой код создания pending intent:

Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

Когда я нажимаю на уведомление, я получаю следующее предупреждение:

startActivity called from non-Activity context; 
forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent........

Я также попытался получить активность с помощью this вместо getApplicationContext(), но получил то же предупреждение. Как я должен делать это правильно?

1 ответ

Не используйте Intent.FLAG_ACTIVITY_NEW_TASK для PendingIntent.getActivity. Лучше использовать FLAG_ONE_SHOT.

И попробуйте использовать Context из Activity вместо getApplicationContext().

licensed under cc by-sa 3.0 with attribution.