Les notifications Android avec RemoteViews - avoir une activité associée à RemoteViews mise en page

J'ai fait des recherches sur la façon de créer personnalisé-mise en page de notification à l'aide de RemoteView.

Jusqu'à présent, je suis en mesure de créer une notification avec contentView et bigContentView pointant vers un RemoteView avec une mise en page personnalisée xml. Cependant, ce n'est pas arriver, c'est d'avoir Activity (associée à une mise en page personnalisée) a commencé lorsque ce RemoteView est créé.

J'ai vérifié et ma mise en page xml, il semble avoir corriger Activity nom de la classe:

<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>

Dans le fichier de manifeste, juste après l'application principale de l'activité principale, la notification de l'activité est également ajouté:

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

Je en droit d'attendre lors de la notification utilise RemoteView de son contenu, que ce RemoteView va lancer une activité qui est attaché à sa définition de la structure. Cependant, il semble que non.

Voici comment j'ai créer une notification dans l'application principale 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 classe d'activité est défini comme d'habitude:

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

Quelqu'un peut-il point pour moi ce que je suis absent ou si j'ai mal compris ce que RemoteView peut faire? Ma compréhension est que RemoteView devrait, une fois créé, invoquer l'activité associée à sa disposition. Ou - est-il une API, j'ai raté explicitement pouvez définir à l'intention de la RemoteView?

Ce que j'ai trouvé jusqu'à présent ne sont que paramètre de contenu Intent qui, fondamentalement, tout simplement lance un Activity une fois que l'utilisateur touche de notification. Ce que je cherche est de gérer les touches de certains éléments de l'INTERFACE utilisateur à l'intérieur personnalisée-mise en page de notification, de ne pas lancer un Activity indépendamment de l'endroit où l'utilisateur clique sur la notification de la surface.

Par exemple, si j'ai 3 icônes (c'est à dire ImageView) dans un RemoteView de la notification utilise, j'aimerais être capable de gérer le tactile sur chacun d'eux. Je ne peux pas imaginer ce ne serait pas possible, comme si elle ne l'est pas, ce qui est le point d'avoir RemoteView dans la notification?

Attributs XML dans le tools Manifeste seulement affecter les outils (c'est à dire, les bonnes thème lors de la recherche à la mise en page aperçu dans votre IDE, basé sur la tools:context qui est déclarée). Ils n'ont pas d'effet au moment de l'exécution.
Merci de remarquer. XML a été auto-produit par mon IDE.

OriginalL'auteur Sinisa | 2014-03-23