Недавно я применил уведомления для своего приложения. То, что я тестировал, - это поведение того, как приложение должно работать. Я предположил бы, что это было бы что-то вроде этого:Как воссоздать активность, перейдя по ссылке из приложения?
Уведомление получено и открытое Comments.class
через намерение ->MainActivity.class
-> нажмите назад (приложение выхода, перейдите на главном экране Android устройства) -> возобновлять приложение через Диспетчер задач -> Вернитесь к Comments.class
Первые несколько шагов работают, но когда я перехожу из диспетчера задач, чтобы открыть резервное копирование приложения, я заметил, что он отправляется в Comments.class
, который кажется ожидаемым поведением, как я тестировал с другими приложениями для Android.
Однако некоторые из свойств моего Comments.class
не установлены, и я знаю, потому что метод onCreate
моего Comments.class
не вызывается. Есть ли причина, почему этого не произойдет? Это была моя попытка:
NotificationService.java
:
Intent resultIntent = new Intent(context, Comments.class);
Intent backIntent = new Intent(context, MainActivity.class);
backIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//Set a random notification Id for each notification so that if you get multiple, the first does not get replaced.
Random random = new Random();
int notificationId = random.nextInt(9999 - 1000) + 1000;
PendingIntent pendingIntent = PendingIntent.getActivities(context, notificationId, new Intent[] { backIntent, resultIntent}, PendingIntent.FLAG_ONE_SHOT);
//When the notification is actually clicked on
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationId, notificationBuilder.build());
Это первый создает уведомление и уведомляет пользователя о приложении. Затем вызывается функция Comments.java
onCreate
, которая ожидается, когда я нажимаю на Notification
. Затем я нажимаю назад, который просто переходит обратно в MainActivity
так:
Comment.java
:
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
}
Затем MainActivity.java
называется и создал что все в порядке. Если я нажимаю назад на MainActivity.java
, то я выполнить следующий код:
Вот от MainActivity.java
@Override
public void onBackPressed() {
super.onBackPressed();
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
Который берет меня на главном экране моего устройства. Однако экземпляр моего приложения по-прежнему работает в фоновом режиме, и когда я нажимаю на свое приложение в фоновом режиме и помещаю его на передний план, я перемещаюсь обратно до Comments.java
, но поскольку метод Comments.java
onCreate
не вызывается, некоторые из детали Activity
не инициализируются. Любая идея, почему это происходит?
Любая помощь будет оценена по достоинству. Благодаря!