我在A activity中写了个service,在service中生成了一个notification,点击这个通知后跳转到A activity中,一开始时,不是跳转到A activity中,而是直接生成了个A activity,这样就有两个了。后来给 A activity加了android:launchMode="singleTask" ,然后 PendingIntent 时加了intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 这样的话 点击通知是转到A activity中了。但是我在intent 中是加了参数的,在A activity中拿不到参数,这么办呢?99我吧。service.java中代码大致上是这样NotificationManager nmanarer = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.icon, tickertext, System.currentTimeMillis());PendingIntent pt = null;
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);notificationid = 1001;
intent.setClass(this, MainTabActivity.class);
intent.putExtra("notificationid", notificationid);
pt = PendingIntent.getActivity(this, num, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(this, title, content, pt);
nmanarer.notify(notificationid, notification);
Activity中的代码 protected void onResume() {
super.onResume();
Log.i(TAG,"maintabactivity onResume");
Intent intent = getIntent();
if(intent != null){
CURMODE = intent.getIntExtra("curmode", CURMODE_HOMELIST);
MSGMODE = intent.getIntExtra("msgmode", MessageGroupActivity.MODE_MYPOST);
notificationId = intent.getIntExtra("notificationId", 0);
Log.i(TAG,"----notificationId="+notificationId + " CURMODE="+CURMODE);
}else{
Log.i(TAG, "the intent is null");
}
if(notificationId != 0){
NotificationManager nmanarer = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Log.i(TAG,"notificationId---"+notificationId);
nmanarer.cancel(notificationId);
}
}
Notification notification = new Notification(R.drawable.icon, tickertext, System.currentTimeMillis());PendingIntent pt = null;
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);notificationid = 1001;
intent.setClass(this, MainTabActivity.class);
intent.putExtra("notificationid", notificationid);
pt = PendingIntent.getActivity(this, num, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(this, title, content, pt);
nmanarer.notify(notificationid, notification);
Activity中的代码 protected void onResume() {
super.onResume();
Log.i(TAG,"maintabactivity onResume");
Intent intent = getIntent();
if(intent != null){
CURMODE = intent.getIntExtra("curmode", CURMODE_HOMELIST);
MSGMODE = intent.getIntExtra("msgmode", MessageGroupActivity.MODE_MYPOST);
notificationId = intent.getIntExtra("notificationId", 0);
Log.i(TAG,"----notificationId="+notificationId + " CURMODE="+CURMODE);
}else{
Log.i(TAG, "the intent is null");
}
if(notificationId != 0){
NotificationManager nmanarer = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Log.i(TAG,"notificationId---"+notificationId);
nmanarer.cancel(notificationId);
}
}
解决方案 »
- 让几张图片同时隐藏
- 请教一个android网络应用的问题
- AlertDialog对话框消失的问题
- android中我想在第三方软件中设置音效,我想选择系统自带的,怎么弄?
- frameLayout后边的按钮及文本框都不显示?为什么呢?
- 关于dispatchKeyEvent的问题
- 怎么拯救被阉割了进程的应用
- 自定义View在android2.3.3手机上正常运行 在android4.2.2手机上报空指针
- 写了个android键盘,请问怎么实现backspace的功能
- ImageView 在 Scrollview 里面 拖动会变形
- android开发真机通过局域网连接本地服务器测试的问题?
- android菜鸟遇到个关于内部类的问题
和你获取的键名是不同的notificationId = intent.getIntExtra("notificationId", 0);
id是小写的,改过来应该就没问题了
super.onNewIntent(intent);
setIntent(intent);
//在这里取数据
Intent intent = getIntent();}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent); }