Почему onDestroy() называется, когда я нажимаю на уведомление и перехожу к своей деятельности? Управляющий поток выглядит следующим образом:> onCreate -> onStart -> onResume -> onDestroy. Ниже приведен код для добавления уведомления: -Почему onDestroy() называется, когда я нажимаю на уведомление и перехожу к своей деятельности?
private void addNotification(String message, User user, String roomId) {
System.out.println("Inside addNotif service");
if (message.length()==0) {
return;
}
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.notification_icon);
builder.setContentTitle("2222----You have new message(s)");
builder.setContentText(message);
builder.setAutoCancel(true);
Intent notificationIntent;
if (roomId.contains("admin1")) {
notificationIntent = new Intent(this, DemoChatActivity.class);
} else {
notificationIntent = new Intent(this, copyDemoChatActivity.class);
}
//notificationIntent.putExtra(com.clover_studio.spikachatmodule.utils.Const.Extras.USER, user);
Config config = new Config(com.clover_studio.spikachatmodule.utils.Const.Api.BASE_URL, com.clover_studio.spikachatmodule.utils.Const.Socket.SOCKET_URL);
notificationIntent.putExtra(com.clover_studio.spikachatmodule.utils.Const.Extras.CONFIG, config);
notificationIntent.putExtra(com.clover_studio.spikachatmodule.utils.Const.Extras.ROOM_ID, roomId);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
// Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
}
Мой OnDestroy() метод:
@Override
protected void onDestroy() {
System.out.println("copyDemoChat - onDestroy()");
super.onDestroy();
Log.d(TAG, "unregistering reciever");
// Unregister since the activity is about to be closed.
Intent intentN = new Intent(copyDemoChatActivity.this, com.clover_studio.democloverapp.Utils.SSNotificationService.class);
copyDemoChatActivity.this.startService(intentN);
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
isRunningCDCA = false;
}
Возможно, этот код создаст новую активность. Итак, предыдущий будет Destroy .. Вы можете получить новое намерение в 'onNewIntent()' в существующей Activity. –
На вашем направлении я немного искал onNewIntent() и нашел [this] (http://stackoverflow.com/questions/8357200/how-we-can-use-onnewintent-in-any-activity). Это привело меня к [этой ссылке] (http://www.helloandroid.com/tutorials/communicating-between-running-activities). Но, к сожалению, даже после реализации метода onNewIntent() была вызвана функция onDestroy(). –
ОК, поэтому мой метод onNewIntent() не называется вызываемым! Как обеспечить, чтобы он был вызван, если активность, которую я собираюсь, уже присутствует в фоновом режиме? –