当用户注销并推送推送通知时,我的应用会自动打开。我想点击推送通知打开我的应用程序?

时间:2016-09-30 12:04:33

标签: android push-notification google-cloud-messaging android-pendingintent

这是我发送推送通知的方法: -

 private void sendNotification(String msg) {

        mNotificationManager = (NotificationManager) this
                .getSystemService(Context.NOTIFICATION_SERVICE);
        PendingIntent contentIntent;
        Intent intentblank = new Intent(this, LoginActivity.class);
        intentblank.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intentblank);


        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

        Log.e("message.....", msg);


        if (msg.equals("You Have got New Message")) {

            Log.e("msg occuring..", "intent enter in message...");
            intent.putExtra("KEYMESSAGE", "Message");

        } else {

            Log.e("notification occuring..", "notification occurs.....");
            intent.putExtra("KEYNOTIFICATION", "aman");


        }



        if (sharedPreferencesUtilities.getEmail().equals("") || sharedPreferencesUtilities.getPassword().equals("")) {
            Log.e("blank notification....", "blank notification...........................");
            contentIntent  =PendingIntent.getActivity(this, 0, intentblank, 0);
        } else {
           contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        }


        mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
                .setSmallIcon(getNotificationIcon())
                .setContentTitle("Telepoh")
                .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
                .setContentText(msg)
                .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);

        mBuilder.setContentIntent(contentIntent);
        mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
        mBuilder.getNotification().flags |= Notification.FLAG_ONGOING_EVENT;
        mBuilder.setOngoing(false);

        mBuilder.setAutoCancel(true);


        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());


    }

    private int getNotificationIcon() {
        boolean useWhiteIcon = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
        return useWhiteIcon ? R.drawable.push_icon : R.drawable.push_icon;
    }
}

我希望当用户退出时,然后点击推送通知,我的应用程序的登录页面就会打开。但在我的情况下,如果用户退出,则应用程序会自动打开。我想在点击推送通知时这样做。

3 个答案:

答案 0 :(得分:0)

始终在通知点击时调用登录活动。在登录活动中检查用户是否已登录。如果已登录,请转到主要活动,或者继续登录活动

答案 1 :(得分:0)

使用此:

        Intent loginIntent = new Intent(getApplicationContext(),LoginActivity.class);
        loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, loginIntent ,PendingIntent.FLAG_UPDATE_CURRENT);

并将您的startActivity(loginIntent );置于您的状态以进行登录检查。

答案 2 :(得分:0)

删除以下代码行

 startActivity(intentblank);