GoldFish GoldFish - 1 month ago 55
Android Question

Received Firebase Notification starts and closes android app

When I'm sending Firebase Notification from the Firebase console, it starts my splash screen and notification icon is appearing to the top of display. I have no idea what can cause this kind of behaviour. Any ideas?

this is my MyFirebaseMessagingService.class

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.util.Log;

import com.Novatech.paybox.Activities.MainActivity;
import com.Novatech.paybox.Activities.NewsActivity;
import com.Novatech.paybox.Classes.News;
import com.Novatech.paybox.R;
import com.Novatech.paybox.SQLite.DBHandler;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

import java.util.List;

public class MyFirebaseMessegingService extends FirebaseMessagingService {

String Title;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Intent intent = new Intent(this, NewsActivity.class);
if(remoteMessage.getData().size() > 0){
String message = remoteMessage.getData().get("message");
String title = remoteMessage.getData().get("title");
Title = title;
System.out.println("TitleFrom MEssageingService::"+title);
Bundle bundle = new Bundle();
bundle.putString("message",message);
intent.putExtras(bundle);
}
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this).setContentIntent(pendingIntent);
notificationBuilder.setContentTitle(Title);
notificationBuilder.setContentText(remoteMessage.getNotification().getBody());
notificationBuilder.setAutoCancel(true);
notificationBuilder.setSmallIcon(getNotificationIcon());
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
private int getNotificationIcon(){
boolean userWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
return userWhiteIcon ? R.drawable.paybox_logo_transparant : R.drawable.paybox_logo;
}
}


and this is MyFirebaseInstanceIdService

import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;


public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
private static final String TAG = "REG_TOKEN";

@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);


// Log.d(REG_TOKEN,recent_token);
// System.out.println("REG_TOKEN::"+recent_token);
} }


and this is my main activity where I redirect user to another activity if he/she taps on notification.

String notificationMessegaBody="a";

if(getIntent().getExtras() != null){
notificationMessegaBody = getIntent().getExtras().getString("id");
System.out.println("MessageBody FromLoginChooserActivity::" + notificationMessegaBody);
//insert news in SQLite Database
if(notificationMessegaBody!="a"){
if(!(notificationMessegaBody == null)){
Intent intent = new Intent(LoginChooserActivity.this, NewsActivity.class);
startActivity(intent);
}
}
}else{
System.out.println("extras are empty");
}


service inside AndroidManifest.xml

<service
android:name=".Notification.MyFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>

<service
android:name=".Notification.MyFirebaseMessegingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>-->


this is a logcat output

10-18 13:17:43.445 4691-4691/? I/art: Late-enabling -Xcheck:jni
10-18 13:17:43.525 4691-4691/com.Novatech.paybox I/MultiDex: VM with version 2.1.0 has multidex support
10-18 13:17:43.525 4691-4691/com.Novatech.paybox I/MultiDex: install
10-18 13:17:43.525 4691-4691/com.Novatech.paybox I/MultiDex: VM has multidex support, MultiDex support library is disabled.
10-18 13:17:43.564 4691-4691/com.Novatech.paybox D/FirebaseApp: Initialized class com.google.firebase.auth.FirebaseAuth.
10-18 13:17:43.571 4691-4691/com.Novatech.paybox D/FirebaseApp: Initialized class com.google.firebase.iid.FirebaseInstanceId.
10-18 13:17:43.579 4691-4753/com.Novatech.paybox E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.Novatech.paybox-2/base.apk"],nativeLibraryDirectories=[/data/app/com.Novatech.paybox-2/lib/arm, /data/app/com.Novatech.paybox-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
10-18 13:17:43.583 4691-4691/com.Novatech.paybox V/GoogleSignatureVerifier: com.google.android.gms signature not valid. Found:
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29n
bGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEz
MzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw
FAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5k
cm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtW
LgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKke
dxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjA
sb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/Cx
URaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJE
qO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/T
gt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIG
A1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC
4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/y
zKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCE
yj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1S
KMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifK
Z0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3Wf
MBEmh/9iFBDAaTCK
10-18 13:17:43.583 4691-4753/com.Novatech.paybox V/GoogleSignatureVerifier: com.google.android.gms signature not valid. Found:
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29n
bGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEz
MzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw
FAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5k
cm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtW
LgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKke
dxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjA
sb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/Cx
URaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJE
qO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/T
gt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIG
A1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC
4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/y
zKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCE
yj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1S
KMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifK
Z0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3Wf
MBEmh/9iFBDAaTCK
10-18 13:17:43.587 4691-4753/com.Novatech.paybox E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.Novatech.paybox-2/base.apk"],nativeLibraryDirectories=[/data/app/com.Novatech.paybox-2/lib/arm, /data/app/com.Novatech.paybox-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
10-18 13:17:43.631 4691-4691/com.Novatech.paybox W/DynamiteLoaderImpl: Failed to load module version: module com.google.android.gms.flags not found
10-18 13:17:43.631 4691-4691/com.Novatech.paybox I/DynamiteModule: Considering local module com.google.android.gms.flags:1 and remote module com.google.android.gms.flags:0
10-18 13:17:43.631 4691-4691/com.Novatech.paybox I/DynamiteModule: Selected local version of com.google.android.gms.flags
10-18 13:17:43.636 4691-4691/com.Novatech.paybox E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.crash.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.Novatech.paybox-2/base.apk"],nativeLibraryDirectories=[/data/app/com.Novatech.paybox-2/lib/arm, /data/app/com.Novatech.paybox-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
10-18 13:17:43.637 4691-4691/com.Novatech.paybox I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:4
10-18 13:17:43.637 4691-4691/com.Novatech.paybox I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 4
10-18 13:17:43.647 4691-4691/com.Novatech.paybox W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/0000000a/n/armeabi-v7a
10-18 13:17:43.647 4691-4691/com.Novatech.paybox W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/0000000a/n/armeabi
10-18 13:17:43.657 4691-4691/com.Novatech.paybox I/FirebaseCrashApiImpl: FirebaseCrashApiImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/data/com.google.android.gms/app_chimera/m/0000000a/DynamiteModulesC_GmsCore_prodmnc_xxhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/0000000a/n/armeabi-v7a, /data/user/0/com.google.android.gms/app_chimera/m/0000000a/n/armeabi, /vendor/lib, /system/lib]]]
10-18 13:17:43.665 4691-4691/com.Novatech.paybox W/DynamiteLoaderImpl: Failed to load module version: module com.google.android.gms.flags not found
10-18 13:17:43.665 4691-4691/com.Novatech.paybox I/DynamiteModule: Considering local module com.google.android.gms.flags:1 and remote module com.google.android.gms.flags:0
10-18 13:17:43.665 4691-4691/com.Novatech.paybox I/DynamiteModule: Selected local version of com.google.android.gms.flags
10-18 13:17:43.671 4691-4691/com.Novatech.paybox W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
10-18 13:17:43.680 4691-4691/com.Novatech.paybox D/FirebaseCrashApiImpl: FirebaseCrash reporting API initialized
10-18 13:17:43.681 4691-4691/com.Novatech.paybox I/FirebaseCrash: FirebaseCrash reporting initialized com.google.firebase.crash.internal.zzg@f7ae0eb
10-18 13:17:43.681 4691-4691/com.Novatech.paybox D/FirebaseApp: Initialized class com.google.firebase.crash.FirebaseCrash.
10-18 13:17:43.690 4691-4691/com.Novatech.paybox I/FA: App measurement is starting up, version: 9080
10-18 13:17:43.690 4691-4691/com.Novatech.paybox I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
10-18 13:17:43.690 4691-4691/com.Novatech.paybox D/FA: Debug logging enabled
10-18 13:17:43.690 4691-4691/com.Novatech.paybox D/FA: AppMeasurement singleton hash: 144412232
10-18 13:17:43.702 4691-4691/com.Novatech.paybox V/FA: Collection enabled
10-18 13:17:43.702 4691-4691/com.Novatech.paybox V/FA: App package, google app id: com.Novatech.paybox, 1:851374531660:android:13f39d9d52fa1182
10-18 13:17:43.710 4691-4691/com.Novatech.paybox V/FA: Registered activity lifecycle callback
10-18 13:17:43.711 4691-4691/com.Novatech.paybox D/FirebaseApp: Initialized class com.google.android.gms.measurement.AppMeasurement.
10-18 13:17:43.711 4691-4691/com.Novatech.paybox I/FirebaseInitProvider: FirebaseApp initialization successful
10-18 13:17:43.714 4691-4774/com.Novatech.paybox V/FA: Using measurement service
10-18 13:17:43.715 4691-4774/com.Novatech.paybox V/FA: Connecting to remote service
10-18 13:17:43.722 4691-4691/com.Novatech.paybox I/GoogleConversionReporter: Already sent ping for conversion Cyh0CKfbimQQ8vyp2QM
10-18 13:17:43.783 4691-4691/com.Novatech.paybox V/FA: onActivityCreated
10-18 13:17:43.788 4691-4691/com.Novatech.paybox I/GAv4: Google Analytics 9.0.80 is starting up. To enable debug logging on a device run:
adb shell setprop log.tag.GAv4 DEBUG
adb logcat -s GAv4

Answer

The problem was in my application.java where I was starting SplashScreen activity which wasn't LAUNCHER activity. I made SplashScreen activity LAUNCHER and deleted it's starting method in application.java , that actually solved the issue.