Android Correct Usage Onesignal
19-08-2017When using onesignal as notification system in Android application, we should insert following codes in ApplicationManifest.xml file:
<meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />
After adding this meta-data, Android will disable launcher activity to be opened.
Handle notification opened event as follows:
public class App extends Application { protected boolean active = true; protected int splashTime = 3000; @Override public void onCreate() { super.onCreate(); MultiDex.install(getApplicationContext()); OneSignal.startInit(this) .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification) .setNotificationOpenedHandler(new OneSignal.NotificationOpenedHandler() { @Override public void notificationOpened(OSNotificationOpenResult result) { String launchURL = null; try { if (result.notification.payload.additionalData == null || result.notification.payload.additionalData.get("CATEGORYID") == null) return; Constant.CATEGORYID = Integer.valueOf(result.notification.payload.additionalData.get("CATEGORYID").toString()); Constant.PROJECTID = result.notification.payload.additionalData.get("PROJECTID").toString(); Intent intent = new Intent(getApplicationContext(), CategoryList_Activity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK); //Log.e("item", ""+Constant.CATEGORY_ID); startActivity(intent); } catch (JSONException e) { Intent intent = new Intent(getApplicationContext(), Splash_Activity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } } }).init(); } }