1

有我的代码来显示内容,通知栏重复应用:在MyActivity.class时点击通知栏

NotificationManager mNotificationManager = (NotificationManager) 
       this.getSystemService(Context.NOTIFICATION_SERVICE); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
       new Intent(this, MyActivity.class).putExtra("package.notification", 123).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 
       PendingIntent.FLAG_CANCEL_CURRENT); 
     NotificationCompat.Builder mBuilder = 
       new NotificationCompat.Builder(this) 
         .setSmallIcon(R.drawable.ic_launcher).setContentTitle(""); 
     // Set Big View style to see full content of the message 
     NotificationCompat.BigTextStyle inboxStyle = 
       new NotificationCompat.BigTextStyle(); 
     inboxStyle.setBuilder(mBuilder); 
     inboxStyle.bigText(""); 
     inboxStyle.setBigContentTitle(""); 
     inboxStyle.setSummaryText(""); 
     // Moves the big view style object into the notification object. 
     mBuilder.setStyle(inboxStyle); 
     mBuilder.setContentText(msg); 
     mBuilder.setDefaults(Notification.DEFAULT_ALL); 
     mBuilder.setContentIntent(contentIntent); 
     mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 

在onStart()

@Override 
    protected void onStart() { 
     super.onStart(); 
     if (getIntent().getIntExtra("package.notification", -1) == 123) { 
      //check in here 
     } 
    } 

问题MyActitvity活动总是会创建新的,当我点击通知栏中的通知(如果MyActitvity活动存在,则重复活动)。

我想要打开应用程序(这意味着MyActitvity活动已启用),而不是创建MyActitvity新功能。

只有当应用程序关闭启动MyActitvity活动(MyActitvity不活跃)

请给我指教

回答

1

当您创建目的使用此标志

Intent m_intent = new Intent(this, YourActivity.class); 
m_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

,然后用这个意图待定意图

+0

非常感谢你 – 2015-04-06 03:05:35

1

您可以使用标记

android:launchMode="singleTop" 

在活动中的Manifest.xml:

  <activity 
      android:name=[your_activity_name] 
      android:launchMode="singleTop" 
      android:theme=[your_theme] /> 
+1

不要忘了覆盖'onNewIntent(意向)'您的活动,如果你需要。 – 2015-04-03 11:23:03

+0

谢谢你的建议 – 2015-04-06 03:05:08