public class MainActivity extends AppCompatActivity {
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Toast.makeText(this, "onNewIntent", Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent a = new Intent(this, MainActivity.class);
Intent b = new Intent(this, MainActivity.class);
b.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pia = PendingIntent.getActivity(this, 1, a, 0);
PendingIntent pib = PendingIntent.getActivity(this, 1, b, PendingIntent.FLAG_UPDATE_CURRENT);
try {
pib.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
}
}
При использовании приведенного выше кода при запуске Activity вместо всплывающего тоста "onNewIntent
" вызывается новая функция MainActivity, игнорирующая флаг FLAG_ACTIVITY_SINGLE_TOP
.
Но если я изменю FLAG_UPDATE_CURRENT
на FLAG_CANCEL_CURRENT
, проблема решена.
Это ошибка Android? Я тестирую это на эмуляторе под управлением Android Pie.
Есть ли способ обновить флаг PendingIntent?