0

这是我的通知代码。我希望 onClick 我的应用程序启动。现在什么都没有发生

private void CheckNoti(){ 
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
                                service.this);
                notificationBuilder.setContentTitle("Title");
                notificationBuilder.setContentText("Context");
                notificationBuilder.setTicker("TickerText");
                notificationBuilder.setWhen(System.currentTimeMillis());
                notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);

                Intent notificationIntent = new Intent(this, service.class);
                PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                                notificationIntent, 0);

                notificationBuilder.setContentIntent(contentIntent);

                notificationBuilder.setDefaults(Notification.DEFAULT_SOUND
                                | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);

                mNotificationManager.notify(1,
                                notificationBuilder.build());
    }   }

这是类中的代码。它不在 MainActivity 内。所以我不能做类似的事情:

intent.setClassName("your.package.name", "ActivityToLaunch");

我想因为我已经在做Intent notificationIntent = new Intent(this, service.class);

4

1 回答 1

0

要将您的应用程序置于前台(如果它已经在运行),您需要在您的意图上设置不同的标志:

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

为了运行一个特定的方法,你可以只传递额外的信息和意图,并在你的应用程序中解释它来决定运行哪个方法。

在这里查看答案

于 2013-07-17T15:02:13.480 回答