2

我正在处理推送通知。当用户单击通知时,我想启动应用程序以防它未启动,或者将其置于最前面以防启动。谢谢

4

5 回答 5

1

实施pending intent
代码

Intent pi = new Intent();
pi.setClass(getApplicationContext(), youactivity.class);
// The PendingIntent to launch our activity if the user selects this notification
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,pi, PendingIntent.FLAG_UPDATE_CURRENT);
String msgText = mMessage;
// construct the Notification object.
Notification notif = new Notification(R.drawable.icon, msgText,System.currentTimeMillis());

显现

<activity android:name="com.InfoActivity" android:noHistory="false android:excludeFromRecents="false"></activity>
于 2013-07-09T13:06:18.973 回答
1

这是我在这里找到答案的完整代码用户单击主页按钮后将应用程序置于前面

    Intent intent = new Intent(ctx, SplashScreen.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setAction(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);

            PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0,
                    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT),
                    PendingIntent.FLAG_CANCEL_CURRENT);

            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                    ctx).setContentTitle(extras.getString("title"))
                    .setContentText(extras.getString("message"))
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentIntent(contentIntent);
           Notification noti = mBuilder.build();
           noti.flags = Notification.DEFAULT_LIGHTS
                | Notification.FLAG_AUTO_CANCEL;
           mNotificationManager.notify(NOTIFICATION_ID, noti);

重要的是 Intent 上的标志,这将打开应用程序或将其置于前面(如果已打开),或者如果您在浏览应用程序时单击通知,则什么也不做

于 2013-07-09T13:14:47.867 回答
0

我不知道您是否在谈论 Google Cloud Messaging。但是,如果它是一个普通的通知,那么在创建通知时,您必须提供待处理的意图。只需将您想要的类放在待处理的意图中,这样当用户单击该通知时,您就会被驱动到您所谓的应用程序。一个片段:

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this,
        "Your application activity".class), PendingIntent."Flag you want");

在此之后,在创建通知时使用此意图。它的方法是 setContentIntent("above intent") 并使用 NotificationManager 触发您的通知!

于 2013-07-09T13:12:08.850 回答
0

您可以通过创建一个PendingIntent.
例如,这将在单击通知时启动 MainActivity。

Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

Notification noti = new Notification.Builder(this)
        .setContentTitle("Notication title")
        .setContentText("Content text")
        .setContentIntent(pendingIntent).build();
于 2013-07-09T13:01:18.930 回答
0

只需设置通知的意图,官方 API 指南中对此进行了详细介绍。

于 2013-07-09T13:00:14.210 回答