Уведомление Android с RemoteViews - активность, связанная с макетом RemoteViews

Я изучал, как создать пользовательский макет уведомления с помощьюRemoteView.

Пока я могу создать уведомление сcontentView а такжеbigContentView указывая наRemoteView с пользовательским макетом XML. Однако, что не происходит, это иметьActivity (связано с пользовательским макетом) началось, когда этоRemoteView создано.

Я дважды проверил, и в моем макете XML, кажется, правильноActivity имя класса:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    tools:context=".LLMNotificationActivity" >

..... the rest are standard layout items: images, buttons and text

</RelativeLayout>

В файле манифеста, сразу после основного действия основного приложения, также добавляется действие уведомления:

<activity
    android:name=".LLMNotificationActivity"
    android:label="@string/app_name">
    <intent-filter>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

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

Вот как я создаю уведомление в основном приложенииActivity:

protected void startNoti() {
    if( noti!=null ) return;

    Context context = getApplicationContext();  

    RemoteViews contentView = new RemoteViews(context.getPackageName(),R.layout.activity_noti1);

    Notification.Builder notibuilder = new Notification.Builder(context);
    notibuilder.setContentTitle(" ");
    notibuilder.setContentText(" ");
    notibuilder.setSmallIcon(R.drawable.ic_launcher);
    notibuilder.setOngoing(true);

    manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    noti = notibuilder.build();

    noti.contentView = contentView;

    manager.notify(NOTIFICATION_ID, noti);  
}

LLMNotificationActivity Класс деятельности определяется как обычно:

public class LLMNotificationActivity extends Activity {
    .... etc.... constructor, some button on-click handlers, nothing spectacular...
}

Может ли кто-нибудь указать мне, что мне не хватает, или если я неправильно понял, чтоRemoteView сможет сделать? Я понимаю, чтоRemoteView должен, после создания, вызывать действие, связанное с его макетом. Или - есть какой-то API, который я пропустил, который явно может установить намерениеRemoteView?

То, что я нашел до сих пор, это только настройка контентаIntent который в основном только запускаетActivity как только пользователь касается уведомления. То, что я ищу, - это обрабатывать прикосновения к некоторым элементам пользовательского интерфейса внутри уведомлений пользовательского макета, а не запускатьActivity независимо от того, где пользователь нажимает на поверхность уведомлений.

Например, если у меня есть 3 иконки (т.е.ImageView) вRemoteView какое уведомление использует, я хотел бы иметь возможность обрабатывать касание каждого из них. Я не могу себе представить, что это было бы невозможно, как будто это не так, какой смысл иметьRemoteView в уведомлении?

Ответы на вопрос(2)

Ваш ответ на вопрос