Обрабатывать события нажатия на панели уведомлений, которая перенаправляет пользователей в приложение Lollipop - PullRequest
0 голосов
/ 02 сентября 2018

Когда пользователи нажимают значок моего приложения на панели уведомлений, пользователи перенаправляются в мое приложение.

enter image description here

Может ли кто-нибудь предоставить пример кода? Как подписаться на событие click и перенаправление.

Обновление

Мое приложение может использовать некоторые службы, которые вызывают отображение значка на панели уведомлений.

Мое приложение вызывает SetForeground, а не getBroadcast ().

Обновление 2

как перенаправить пользователей к последнему действию, а не к жесткому коду? Например, последняя активность может отличаться, когда пользователи переходят к другой активности.

Событие щелчка уведомления в формах xamarin

1 Ответ

0 голосов
/ 02 сентября 2018

Это образец из моего приложения, он работает. Я думаю, что вы можете сделать что-то подобное.

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...