Я реализовал push-уведомления Firebase, и когда приложение находится на переднем плане, я создаю пользовательское уведомление с помощью Pending Intent. При нажатии на уведомление открывается
новая деятельность. Если приложение открыто и активность запущена, я не хочу его воссоздавать, а просто открываю.
Я установил для launchMode значение 'singleTask', что и помогает.
Проблема в том, что я передаю статистику с помощью Intent, и onCreate не вызывается и напрямую запускает onResume.
как мне получить дополнительные услуги?
Я что-то здесь не так делаю? Ваша помощь и предложения будут очень полезны
вот код для создания настраиваемого уведомления в ожидании намерения.
private void sendNotification(PushNotification pushNotification) {
try{
Intent intent = new Intent(this, BottomNavigationActivity.class);
intent.putExtra("pushNotification", (Serializable) pushNotification);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,(int) System.currentTimeMillis() /* request code */, intent,PendingIntent.FLAG_UPDATE_CURRENT);
long[] pattern = {500,500,500,500,500};
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(pushNotification.getTitle())
.setContentText(pushNotification.getMessage())
.setAutoCancel(true)
.setVibrate(pattern)
.setLights(Color.BLUE,1,1)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify( (int) System.currentTimeMillis() /* ID of notification */, notificationBuilder.build());
}catch (Exception e){
Log.d(TAG,e.getMessage());
}
}
Manifest
<activity
android:name=".activity.BottomNavigationActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask">
</activity>
BottomNavigationActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Intent intent = getIntent();
PushNotification pushNotification = (PushNotification) intent.getSerializableExtra("pushNotification");
if(null != intent.getExtras()){
//here i get the pushnotification data and do something with it.
}
}catch (Exception e){
Log.d(TAG, e.getMessage());
}
}
@Override
protected void onResume() {
super.onResume();
}
Спасибо
R