码迷,mamicode.com
首页 > 移动开发 > 详细

Android 响应notification事件

时间:2015-12-09 00:12:56      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

两种情况

第一种情况就是:

点击Notification ——>进入secActivity ——> back键 ——> 退出应用

PendingIntent contentIntent = PendingIntent.getActivity(context, 0,  intent, PendingIntent.FLAG_CANCEL_CURRENT);  

第二种情况:

点击Notification ——>进入secActivity ——> back键 ——> 退到mainActivity ——>back键 ——>退出应用

需要添加intent数组,这里是两个单位,所以先打开的是secActivity(intent[1]),

需要在Manifest中对指定的Activity设置属性

<activity android:name=".secActivityl"
        android:launchMode="singleTask"
        android:taskAffinity=""
        android:excludeFromRecents="true">
</activity>

PendingIntent提供了个静态方法getActivities,里面可以设置一个Intent数组,用来指定一系列的Activity。

Intent[] makeIntentStack(Context context) {
    Intent[] intents = new Intent[2];
    intents[0] = Intent.makeRestartActivityTask(new ComponentName(context, com.example.notificationtest.MainActivity.class));
    intents[1] = new Intent(context,  com.example.notificationtest.SubActivity.class);
    return intents;
}

其中需要注意的是Intent.makeRestartActivityTask方法,这个方法用来创建activity栈的根activity

接下来,创建并显示Notification:

void showNotification(Intent intent) {
    Notification notification = new Notification(
            R.drawable.status_icon, 
            "消息栏顶部标题",
            System.currentTimeMillis());

    PendingIntent contentIntent = PendingIntent.getActivities(
            this,
            0,
            makeIntentStack(this), 
            PendingIntent.FLAG_CANCEL_CURRENT);
    notification.setLatestEventInfo(
            this, 
            "下拉消息栏标题",
            "消息内容", 
            contentIntent);
    notification.flags |= Notification.DEFAULT_ALL;

    mNM.notify(1, notification);
}

 

Android 响应notification事件

标签:

原文地址:http://www.cnblogs.com/bkycjj/p/5031342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!