Ниже приведен мой код, который настраивает панель уведомлений.Нажимает ли панель уведомлений создать новое действие?
PendingIntent pi = PendingIntent.getActivity(
getApplicationContext(),
0,
new Intent(getApplicationContext(), AudioActivity.class),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_action_star)
.setContentTitle("My app")
.setContentText("works")
.setContentIntent(pi);
mNotificationManager = (NotificationManager) getSystemService(
Context.NOTIFICATION_SERVICE
);
mNotificationManager.notify(NOTIFICATION_ID, builder.build());
Во время выполнения, я первый показать AudioActivity на переднем месте, а затем открыть панель уведомлений, которая показывает сообщение, как «Мои приложение работает». При нажатии на сообщение снова открывается AudioActivity.
Но кажется, что система вызывает метод onCreate AudioActivity, когда я нажимаю панель уведомлений. И до этого он не вызывает onDestroy существующего AudioActivity. Мне было интересно, есть ли у меня два экземпляра AudioActivity, и как я могу ими управлять. Я ожидал, что это должно было сработать с тем, как действия переключаются, а onStart используется скорее onCreate.
Спасибо.
В моем коде я заменил новый Intent (getApplicationContext(), AudioActivity.class) на новый Intent («строка действия») и добавил этот фильтр намерений, затем он работает, и он не вызывает onCreate снова. Но я также обнаружил, что он не вызывает onNewIntent. –
Что здесь делает work.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP)? –
«Строка действия» должна соответствовать определенному фильтру намерения, который вы зарегистрировали в манифесте (или в коде), правильно ли вы настроили его? Если вы хотите опубликовать биты, которые у вас есть, которые соответствуют моему примеру, я посмотрю –