【发布时间】:2015-09-17 14:45:44
【问题描述】:
对不起我的英语。我创建自定义通知(使用 parse.com 和 lib)。我想要这样:我收到通知->单击此->打开新活动。我花了很多时间来解决这个问题,但没有成功。我的代码:
public class Receiver extends ParsePushBroadcastReceiver {
NotificationCompat.Builder mBuilder;
int mNotificationId = 001;
@Override
public void onPushOpen(Context context, Intent intent) {
ParseAnalytics.trackAppOpenedInBackground(intent);
Intent i = new Intent(context, Main.class);
i.putExtras(intent.getExtras());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
@Override
public void onReceive(Context context, Intent intent) {
PendingIntent resultPendingIntent = PendingIntent.getActivity(context,
0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
wl.acquire(15000);
mBuilder = new NotificationCompat.Builder(context);
mBuilder.setVibrate(new long[]{1000, 1000});
mBuilder.setSmallIcon(R.drawable.icon); //You can change your icon
mBuilder.setContentText("Content");
mBuilder.setContentTitle("Title");
mBuilder.setSound(Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.beep1));
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(context.NOTIFICATION_SERVICE);
notificationManager.notify(mNotificationId, mBuilder.build());
}
}
清单
<receiver android:name=".Receiver"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
【问题讨论】:
标签: android parse-platform push