我能够创建推送通知,并将用户发送到我想要的任何活动,但我注意到,每当用户登陆该活动时,onCreate函数不会被调用。
应该是这样吗?我如何设置它,使活动的onCreate被调用?
这是我的活动:
public class QuestionActivity extends BaseListActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
,下面是如何生成通知的:
Intent notificationIntent = new Intent(context, MainActivity.class);
if ( notification_type != null && notification_type.equals("question"))
{
notificationIntent = new Intent(context, QuestionActivity.class);
}
else
if ( notification_type != null && notification_type.equals("plan"))
{
notificationIntent = new Intent(context, TopicActivity.class);
}
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setContentIntent(intent)
.setSmallIcon(icon)
.setLights(Color.YELLOW, 1, 2)
.setAutoCancel(true)
.setSound(defaultSound)
.build();
notificationManager.notify(0, notification);
谢谢!
您正在使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
的标志意味着,如果活动已经在当前任务中运行,那么将使用旧的现有活动而不是启动该活动的新实例。在这种情况下,onCreate
不会被调用,因为该活动已经存在。