Java 从正在进行的通知启动活动会在第二次启动时崩溃
我有一个应用程序,它使用持续的通知让用户知道它正在运行。这很方便,因为它需要一直在后台运行才能接收消息。该应用程序主要由一个包含多个片段的活动和两个服务组成 这是我用来显示和更新通知的方法。它在名为Notifications.java的类中实现 它的方法在MainActivity的onResume中调用,也被接收消息的服务调用Java 从正在进行的通知启动活动会在第二次启动时崩溃,java,android,Java,Android,我有一个应用程序,它使用持续的通知让用户知道它正在运行。这很方便,因为它需要一直在后台运行才能接收消息。该应用程序主要由一个包含多个片段的活动和两个服务组成 这是我用来显示和更新通知的方法。它在名为Notifications.java的类中实现 它的方法在MainActivity的onResume中调用,也被接收消息的服务调用 public static void updateOngoingNotification(Context c, String text) { Intent int
public static void updateOngoingNotification(Context c, String text) {
Intent intent = new Intent(c, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pIntent = PendingIntent.getActivity(c, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(c)
.setSmallIcon(R.drawable.ic_launcher)
.setOngoing(true)
.setContentText(text)
.setContentTitle(c.getString(R.string.app_name))
.setContentIntent(pIntent);
NotificationManager notificationManager = (NotificationManager) c
.getSystemService(c.NOTIFICATION_SERVICE);
notificationManager.notify(0, mBuilder.build());
}
问题是,一切似乎都正常工作,但当我第二次尝试启动活动时,应用程序冻结了。我怀疑通知ID或缺少标志,但到目前为止没有找到解决方案。当您的活动是
singleTop
或您在意图中使用FLAG\u activity\u SINGLE\u TOP
标志调用它时,新的Intent
对象将被传递给活动的onNewIntent
方法(如果该方法已在运行)。因此,您需要重写活动中的onNewIntent
方法,该方法将从通知中接收新的Intent
对象。因此,您可以相应地更新您的活动
Ref:它崩溃了吗?或者你有日志吗?谢谢你的快速回答。它起作用了,但我必须将标志设置为intent.setFlags(intent.FLAG_ACTIVITY_SINGLE_TOP | intent.FLAG_ACTIVITY_CLEAR_TOP);这不是我上面发布的代码的一部分。然而,这个解决方案对我的应用程序很好。谢谢!:)很高兴它帮助了你:)