处理通知栏上的点击事件,将用户重定向到应用程序Lollipop

问题描述 投票:1回答:1

当用户在通知栏上单击我的应用程序图标时,用户将被重定向到我的应用程序。

enter image description here

有人可以提供示例代码吗?如何订阅click事件和重定向。

更新

我的应用程序可能正在使用一些导致在通知栏上显示图标的服务。

我的应用程序是调用SetForeground,而不是getBroadcast()。

更新2

如何将用户重定向到上一个Activity而不是硬代码活动?例如,当用户导航到不同的活动时,最后一个活动可能会有所不同。

Notification click event in xamarin forms

android xamarin xamarin.android
1个回答
0
投票

这是我的应用程序的一个示例,它的工作原理。我想你可以做类似的事情。

public class AlarmReceiver extends BroadcastReceiver {
    public final static String NOTIF_TEXT =  AlarmSetActivity.class.getPackage() + ".NOTIF_TEXT";

    private String notifText;

    @Override
    public void onReceive(Context context, Intent intent) {

        notifText = intent.getExtras().getString(NOTIF_TEXT);
        //().getExtras().getString(NOTE_BODY); 
        Toast.makeText(context, "Notification from " + R.string.app_name,
                Toast.LENGTH_LONG).show();
        buildNotification(context);
    }

    private void buildNotification(Context context) {

        NotificationManager notificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);


        String channelId = "default_channel_id";
        String channelDescription = "Default Channel";

        Notification.Builder builder = new Notification.Builder(context);

       Intent intent = new Intent(context, **EditorActivity.class**);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                intent, 0);

        builder.setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(context.getString(R.string.notificTitle)).setContentText(notifText)
                .setContentInfo(context.getString(R.string.notificInfo)).setTicker(context.getString(R.string.notifTicker))
                .setLights(0xFFFF0000, 500, 500)
                //.setChannelId(id)
                .setContentIntent(pendingIntent).setAutoCancel(true);

        Notification notification = builder.build();
        //notification.so

        notificationManager.notify(2, notification);
    }
}

和:

private void setAlarm(Calendar targetCal) {
    mTimeTextView.setText(R.string.alarm_on);
    mTimeTextView.append(String.valueOf(targetCal.getTime()));

    Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
    intent.putExtra(AlarmReceiver.NOTIF_TEXT,notificationText);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            getApplicationContext(), RQS_TIME, intent, 0);

    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),
            pendingIntent);
}
© www.soinside.com 2019 - 2024. All rights reserved.