проблема с пользовательским уведомлением Android

#android #customization #android-notifications

#Android #настройка #android-уведомления

Вопрос:

Здесь я могу получать уведомления такого типа, но мое приложение останавливается ниже 5.0. Итак, что я могу сделать, чтобы иметь такой менеджер уведомлений. Похоже, это ошибка при загрузке небольшого изображения перед текстом уведомления

вот мой код

 public static PendingIntent getDismissIntent(int notificationId,
            Context context) {
        Intent intent = new Intent(context, ClsNotificationCloseReceiver.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        intent.putExtra(NOTIFICATION_ID, notificationId);
        PendingIntent dismissIntent = PendingIntent.getActivity(context, 0,
                intent, PendingIntent.FLAG_CANCEL_CURRENT);
        return dismissIntent;
    }

    private void startNotification() {

        String ns = Context.NOTIFICATION_SERVICE;

        notificationManager = (NotificationManager) MainActivity.this
                .getSystemService(NOTIFICATION_SERVICE);

        PendingIntent dismissIntent = MainActivity.getDismissIntent(1,
                MainActivity.this);

        @SuppressWarnings("deprecation")
        Notification notification = new Notification(
                R.drawable.notification_icon, "abc", System.currentTimeMillis());

        RemoteViews notificationView = new RemoteViews(getPackageName(),
                R.layout.mynotification);

        // the intent that is started when the notification is clicked (works)
        Intent intent = new Intent(MainActivity.this, MainActivity.class);

        // PendingIntent pendingIntent = PendingIntent
        // .getActivity(MainActivity.this, 1, intent,
        // PendingIntent.FLAG_UPDATE_CURRENT);

        notification.contentView = notificationView;
        // notification.contentIntent = pendingIntent;
        notification.flags |= Notification.FLAG_NO_CLEAR
                | Notification.FLAG_ONGOING_EVENT;

        // this is the intent that is supposed to be called when the
        // button is clicked
        Intent switchIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 0,
                switchIntent, 0);

        notificationView.setOnClickPendingIntent(R.id.closeOnFlash,
                dismissIntent);
        notificationManager.notify(1, notification);
    }
  

mynotification.xml

 <?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal"
    android:weightSum="100" >

    <ImageView
        android:id="@ id/notifiation_image"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="38"
        android:contentDescription=" vvxcv"
        android:paddingLeft="8dp"
        android:src="@drawable/notification_icon" />

    <TextView
        android:id="@ id/appName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@ id/notifiation_image"
        android:layout_toRightOf="@ id/notifiation_image"
        android:layout_weight="57"
        android:paddingLeft="8dp"
        android:text="@string/app_name"
        android:textColor="#000000"
        android:textSize="15dp" />

    <Button
        android:id="@ id/closeOnFlash"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:background="@drawable/btnstop"
        android:onClick="stopRecording" />

</LinearLayout>
  

Я вызываю метод startNotification, но он останавливается. Я хочу вот что: https://drive.google.com/file/d/0BwgJuKXMh_yGdG1YX1BJUUVzSTA/view?usp=sharing и уведомление не должно быть очищено до тех пор, пока я не нажму кнопку остановки

Комментарии:

1. «мое приложение останавливается», как, что, почему, когда?

2. проверьте вопрос редактирования

3. вместо этого вы должны использовать NotificationCompat. вот так ** Уведомление NotificationCompat.Builder = новое уведомление NotificationCompat.Builder (контекст);**

4. developer.android.com/training/notify-user/…

5. кто-нибудь может отредактировать мой ответ и отправить мне?

Ответ №1:

Пожалуйста, сначала отправьте журналы в случае ошибок, поскольку я вижу, что это можно решить с помощью NotificationCompat.Builder class, а затем просто очистите проект перед его запуском.

 new NotificationCompat.Builder(getApplicationContext());