2016-08-13 45 views
1

我希望在单击通知时启动主活动。即使用户不在应用程序中也是如此。我该怎么做?单击通知发起活动

NotificationCompat.Builder mBuilder =new NotificationCompat.Builder(this) 
         .setSmallIcon(R.drawable.diamond) 
         .setContentTitle("Crystallise") 
         .setContentText("making your thoughts crystal clear"); 
NotificationManager mNotificationManager = 
     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(notifyID, mBuilder.build()); 

回答

1

,首先你需要PendingIntent

Intent intent=new Intent(mContext, Activity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
PendingIntent notificationIntent= PendingIntent.getActivity(mContext,requestCode, intent,PendingIntent.FLAG_UPDATE_CURRENT); 

然后在你的NotificationCompat.Builder补充一点:.setContentIntent(notificationIntent)

对于唯一的请求的代码使用:int requestCode=(int)System.currentTimeMillis();

您可以使用此非活动类,例如:Service,BroadcastReceiver。然后即使它处于关闭状态,您的应用程序也会启动。

1

//添加意图和的PendingIntent开放活动

Intent attendanceIntent = new Intent(getApplicationContext(), Details.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, 
       attendanceIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setSmallIcon(R.drawable.diamond) 
        .setContentTitle("Crystallise") 
        .setContentIntent(pendingIntent) 
        .setContentText("making your thoughts crystal clear"); 
    NotificationManager mNotificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(notifyID, mBuilder.build());