0 0

===关于点击通知打开activity======30

问题是这样的:


我写了一个service  ,service产生了通知,在状态栏中显示。 我期望点击通知图标后,打开我所期望的activity.

但是现在,  每次点击通知图标  打开的都是MainActivity  (就是启动服务的那个主Activity),
除非我把MainActivity退出,  才会打开我期望的activity


请哪位帮忙,谢谢!!


显示通知的代码如下:


public void showNotification(String message) {

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

NotificationInfo n = this.parser.parseNotificationInfo(message);
Bundle bundle = new Bundle();
bundle.putString("UNREAD_MESSAGE", "UNREAD_MESSAGE");
intent.putExtras(bundle);

intent.setClass(this, n.getNotifyActivityClass());
intent.putExtra(PushConsts.PARAM_FROM_SERVICE, true);

Notification notification = new Notification(n.getIcon(), message,
System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
intent, 0);

notification.setLatestEventInfo(this, n.getTitle(), n.getContent(),
contentIntent);
mNM.notify(n.getId(), notification);

}
2014年9月14日 21:59

1个答案 按时间排序 按投票排序

0 0

public static void sendNotify(Context context,Class<? extends BaseActivity> target){
		NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);   
		Notification n = new Notification(R.drawable.noti_title_icon, "收到新通知", System.currentTimeMillis());  
		n.flags = Notification.FLAG_AUTO_CANCEL;     
		n.defaults = Notification.DEFAULT_ALL;
		
		Intent i = new Intent(context,target);
		i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
		PendingIntent pi = PendingIntent.getActivity(context, 0, i,
				PendingIntent.FLAG_UPDATE_CURRENT);
		n.setLatestEventInfo(context, "收到新通知,请点击查看","",pi);
		nm.notify(R.string.app_name, n);
	}

首先贴上我的源码,这个可以满足楼主的需求。
其中关键点在于PendingIntent 的使用。
用PendingIntent将指明了目标Activity的Intent包装一次。

2014年9月22日 15:07

相关推荐

    关于Android中点击通知栏的通知启动Activity问题解决

    主要介绍了关于解决Android中点击通知栏的通知启动Activity问题的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

    Android 一次启动多个Activity (TaskStackBuilder)

    点击通知启动多个Activity.从启动Activity 返回不会退出app,而是返回到App 的MainActivity 或者其他Activity

    Activity跳转时生命周期跟踪的实例

    2. 按下“Jump Button”按钮,打开Second Activity; 3. 按下“回退”按钮,退出Second Activity,自动回到First Activity; 4. 按下“回退”按钮,退出应用,自动关闭First Activity。 注:两个Activity的启动模式...

    androidcode:练习小项目

    NotificationLaunch Android实现点击通知栏后,先启动应用再打开目标Activity的一个小demo

    Android 接收推送消息跳转到指定页面的方法

    这时候要展示通知,点击通知栏打开App并跳转到目标页面,关闭目标页面后需要返回到应用首页,而不是直接推出App 实现思路 App在前台时,弹出Dialog提醒用户有新消息,但是最新版的个推文档接收推送消息是继承...

    Android通知(状态栏/最小化)

    Android下实现类似Windows最小化操作。 点击按钮,Activity收入状态栏,显示小图标。 打开状态栏,可点击图标唤起Activity,小图标消失。 需使用Service类的知识。

    Android通知(状态栏/最小化)

    Android下实现类似Windows最小化操作。 点击按钮,Activity收入状态栏,显示小图标。 打开状态栏,可点击图标唤起Activity,小图标消失。 需使用Service类的知识。

    Notification_Broadcast

    定时启动服务,通过服务创建一个通知,点击通知栏可以打开一个Activity。尽管关闭软件,通知栏也会出现通知。

    SlideNotification:Android 向下滑动通知视图示例

    可关闭通知 - 此通知将在右侧显示“关闭图标”并保持打开状态,直到用户点击关闭按钮。 定时通知 - 此通知将在允许的时间后出现并自动消失。 执行 如果您愿意,通知功能中的幻灯片很容易合并到您自己的项目中。 只...

    Android下Notifications、Mqtt、密码显示隐藏实例

    3.点击通知可定位到某Activity下。 Mqtt: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。它是一种发布/订阅,极其简单和轻量级的消息传递协议,专为受限设备和低...

    BroadCastDemo.zip

    点击通知栏的消息,应用要进行跳转到指定的Activity页面。这个小demo做了通知栏的兼容,兼容安卓不同版本的通知栏操作;同时,跳转到的Activity页面,不会影响之前打开的Activity页面。堆栈和以前一样。通过...

    Android开发人员不得不收集的代码

    launchApp : 打开 App exitApp : 关闭应用 getAppPackageName : 获取 App 包名 getAppDetailsSettings: 获取 App 具体设置 getAppName : 获取 App 名称 getAppIcon : 获取 App 图标 getAppPath : 获取 App 路径 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21...

    Android项目源码开源的 Material Design 豆瓣客户端.zip

    而豆芽解决方案则是使用 EventBus,在请求完成后通知所有界面刷新同一数据。 界面动画 Android 5.0 以上提供了 SharedElementTransition,然而默认情况下共享的界面元素在动画时却会被放置在其他界面元素之上,...

    Google Android SDK开发范例大全的目录

    3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21...

    Google+Android+SDK开发范例大全

    6.4 开始与停止系统服务——Service与Runnable整合并用 6.5 通过短信发送email通知——BroadcastReceiver与Intent整合 6.6 手机拨接状态——PhoneStateListener之onCallStateChanged 6.7 有来电,发送邮件通知——...

Global site tag (gtag.js) - Google Analytics