1

我正在關注的Android Dev教程使用Big View的通知。當點擊按鈕時點擊通知主體和其他功能時,我想要一個帶有某些功能的on going通知。 這是我的代碼:Android的通知大觀 - 按鈕意圖沒有被解僱

Intent bodyIntent = new Intent(context, MainActivity.class); 
innerIntent.putExtra(NOTIFICATION_BODY, "Click on notification body"); 
PendingIntent bodyPendingIntent = PendingIntent.getActivity(context, 0, bodyIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

Intent buttonIntent = new Intent(context, MainActivity.class); 
buttonIntent.setAction(NOTIFICATION_BUTTON); 
PendingIntent buttonPendingIntent = PendingIntent.getService(context, 0, buttonIntent, 0); 

android.support.v4.app.NotificationCompat.Builder mBuilder = 
     new NotificationCompat.Builder(context) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentTitle("My notification") 
       .setContentText("Hello World!") 
       .setCategory(Notification.CATEGORY_SERVICE) 
       .setPriority(Notification.PRIORITY_MAX) 
       .setVisibility(Notification.VISIBILITY_PRIVATE) 
       .setContentIntent(notificationPendingIntent) 
       .setAutoCancel(true) 
       .setOnlyAlertOnce(true) 
       .setLights(getResources().getColor(R.color.primary), 50, 10000) 
       .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
       .setVibrate(new long[] {0, 50}) 
       .setOngoing(true) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText("Hello World BIG!")) 
       .addAction(R.mipmap.ic_image, "Button", buttonPendingIntent); 
int mNotificationId = 001; 
NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

然後在onResume

Intent intent = getIntent(); 
    Log.e("m", String.valueOf(intent.getIntExtra(NOTIFICATION_RESULT, 0))); 
    Log.e("m", String.valueOf(intent.getAction())); 

結果:

在通知上的bodyIntent火災的身體一下,我得到正確的log印刷。

當按鈕點擊:什麼也沒有發生,並MainActivity甚至無法啓動。

感謝,

回答

2

你應該叫PendingIntent.getActivity()方法,如果你想開始一個活動,但你可以通過調用PendingIntent.getService()創建buttonPendingIntent

+0

令人難以置信的感謝! – michael