android Notification 通知欄點擊不能跳轉(轉自:http://www.oschina.net/question/778954_212394)


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());

在應用打開的情況下,發送通知,代碼如下: 

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());



以上這段代碼,出現了不能跳轉的情況,於是,做了如下操作解決上述問題

1  < 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());   // 這里是發送廣播哦


設置通知欄的意圖為發送廣播

    
PendingIntent pendingIntent = PendingIntent.getBroadcast( this, count, intent, PendingIntent.FLAG_UPDATE_CURRENT);



當然,這帶來了新的問題,如果我的通知欄需要傳遞參數怎么辦,可以通過如下方式傳遞

intent.setData(Uri.parse("abc"));



這種可以傳遞結構化的數據,那我們所謂的bundle就不能使用了么,當然不是,如下

1 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設置為更新當前



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM