roid Notification 通知欄點擊不能跳轉
關於通知欄Notification的使用,不多講,這里說的很清楚http://www.cnblogs.com/zenfly/archive/2012/02/09/2343923.html
先說下我遇到的問題:
在應用關閉的時候,發送通知到通知欄,點擊通知欄能正常跳轉到我想要的頁面,代碼如下
1 Intent msgIntent =
new Intent();
2
3 msgIntent.addCategory(Intent.CATEGORY_LAUNCHER);
4 msgIntent.setComponent( new ComponentName(context.getPackageName(), "com.test.FragmentActivity"));
5
6 msgIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // 關鍵的一步,設置啟動模式
7
8 UITools.showNotification(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle());
2
3 msgIntent.addCategory(Intent.CATEGORY_LAUNCHER);
4 msgIntent.setComponent( new ComponentName(context.getPackageName(), "com.test.FragmentActivity"));
5
6 msgIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // 關鍵的一步,設置啟動模式
7
8 UITools.showNotification(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle());
在應用打開的情況下,發送通知,代碼如下: |
1 Intent msgIntent =
new Intent();
2
3 msgIntent.setClass(context, FragmentActivity. class);
4
5 msgIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // 關鍵的一步,設置啟動模式
6
7 UITools.showNotification(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle());
2
3 msgIntent.setClass(context, FragmentActivity. class);
4
5 msgIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // 關鍵的一步,設置啟動模式
6
7 UITools.showNotification(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle());
1
<
activity
2 android:name =".activity.FragmentActivity"
3 android:taskAffinity ="" >
4 </ activity >
2 android:name =".activity.FragmentActivity"
3 android:taskAffinity ="" >
4 </ activity >
設置棧,可以正常響應我的通知欄意圖了,但是新的問題出現了,當我按下Home鍵回到桌面的時候,在回來,就不能打開按下之間的頁面了,不同的棧,,,,,
-------問題總是有的,於是換了一種折中的解決方案
1 Intent msgIntent =
new Intent();
2
3 msgIntent.setAction(IntentAction.ACTION_TRIP_APPROVE);
4
5 UITools.showNotificationBroadcast(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle()); // 這里是發送廣播哦
2
3 msgIntent.setAction(IntentAction.ACTION_TRIP_APPROVE);
4
5 UITools.showNotificationBroadcast(context, Notify.NORMAL, msgIntent, jsonBean.getMessageTitle()); // 這里是發送廣播哦
PendingIntent pendingIntent = PendingIntent.getBroadcast( this, count, intent, PendingIntent.FLAG_UPDATE_CURRENT);
intent.setData(Uri.parse("abc"));
1 PendingIntent pendingIntent = PendingIntent.getBroadcast(
this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
2 PendingIntent pendingIntent = PendingIntent.getBroadcast( this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
2 PendingIntent pendingIntent = PendingIntent.getBroadcast( this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
標紅的地方是重點,為每個意圖設置不同的requestCode,Flag設置為更新當前