Android opening specific tab fragment on notification click

[亡魂溺海] 提交于 2019-12-05 14:55:33

Pass action specifying tab to open, along with intent in pending intent. And in your activity retrieve action (see getIntent()) passed and based on it, open a specific tab.

Intent intent = new Intent(this, Home.class);
intent.setAction("OPEN_TAB_1");
PendingIntent pending intent = PendingIntent.getService(this, 0, intent, 0);              

// In OnCreate() or depending on implementation  
if(getIntent().getAction().equals("OPEN_TAB_1") {
     // Open Tab
}
marienke

Find my answer here: Launch a fragment in my Android application from the notification bar . I don't think it's much different than adding extras to your Intent, but it's good to make use of Android's action-idea.

Send the action to your notify function:

public static void notify(Context context, String message, String  action) {

    action = action.toUpperCase();

    //...

    Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());

    if(action != null && launchIntent != null){         
        launchIntent.setAction(action);         
    }

    PendingIntent pendingIntent = PendingIntent.getActivity(context, -1, launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.when = System.currentTimeMillis();  
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 

    // Set the notification and register the pending intent to it
    notification.setLatestEventInfo(context, appName, message, pendingIntent);

    // Trigger the notification
    notificationManager.notify(0, notification);
}

And then get the action and launch the appropriate fragment.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!