2016-09-06 1 views
0

Недавно я применил уведомления для своего приложения. То, что я тестировал, - это поведение того, как приложение должно работать. Я предположил бы, что это было бы что-то вроде этого:Как воссоздать активность, перейдя по ссылке из приложения?

Уведомление получено и открытое 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.javaonCreate, которая ожидается, когда я нажимаю на 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.javaonCreate не вызывается, некоторые из детали Activity не инициализируются. Любая идея, почему это происходит?

Любая помощь будет оценена по достоинству. Благодаря!

ответ

0

Поместите свои инициализации внутри onResume функция вашего Comment.java. Вот хорошее сообщение о Android Activity Lifecycle, которое может помочь вам правильно понять поведение.

@Override 
public void onResume() { 
    // Your initialization 
} 
Смежные вопросы