Android中的本地通知?
我可以在iPhone上发送本地通知吗?
为什么,是的,你可以: http : //developer.android.com/reference/android/app/AlarmManager.html
这里是一个有用的教程: http : //justcallmebrian.com/?p=129
如果您也定位旧的API,请使用NotificationCompat.Builder。
Intent intent = new Intent(ctx, HomeActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder b = new NotificationCompat.Builder(ctx); b.setAutoCancel(true) .setDefaults(Notification.DEFAULT_ALL) .setWhen(System.currentTimeMillis()) .setSmallIcon(R.drawable.ic_launcher) .setTicker("Hearty365") .setContentTitle("Default notification") .setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.") .setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND) .setContentIntent(contentIntent) .setContentInfo("Info"); NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(1, b.build());
在Android中向用户发送本地通知非常简单。 我们使用NotificationManager,一个Intent和一个PendingIntent。
public void notifyUser() { NotificationManager notificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(MyActivity.this, SomeActivity.class); //use the flag FLAG_UPDATE_CURRENT to override any notification already there PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); Notification notification = new Notification(R.drawable.ic_launcher, "Some Text", System.currentTimeMillis()); notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND; notification.setLatestEventInfo(this, "This is a notification Title", "Notification Text", contentIntent); //10 is a random number I chose to act as the id for this notification notificationManager.notify(10, notification); }
LocalBroadcastManager看起来像一个更好的解决scheme: http : //developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html创build您自己的自定义意图行动,广播它到您的过程,并确保任何活动等被注册为该意图的接收者。
如果你想用大数据来触发本地通知,也就是说,多行文本在带有标题的单个通知中,Ticker,icon,sound ..使用下面的代码..我认为它会帮助你..
Intent notificationIntent = new Intent(context, ReminderListActivity.class); notificationIntent.putExtra("clicked", "Notification Clicked"); notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); // To open only one activity // Invoking the default notification service NotificationManager mNotificationManager; NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( context); Uri uri = RingtoneManager .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); mBuilder.setContentTitle("Reminder"); mBuilder.setContentText("You have new Reminders."); mBuilder.setTicker("New Reminder Alert!"); mBuilder.setSmallIcon(R.drawable.clock); mBuilder.setSound(uri); mBuilder.setAutoCancel(true); // Add Big View Specific Configuration NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); String[] events = null; events[0] = new String("Your first line text "); events[1] = new String(" Your second line text"); // Sets a title for the Inbox style big view inboxStyle.setBigContentTitle("You have Reminders:"); // Moves events into the big view for (int i = 0; i < events.length; i++) { inboxStyle.addLine(events[i]); } mBuilder.setStyle(inboxStyle); // Creates an explicit intent for an Activity in your app Intent resultIntent = new Intent(context, ReminderListActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder .create(context); stackBuilder.addParentStack(ReminderListActivity.class); // Adds the Intent that starts the Activity to the top of the stack stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder .getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT); mBuilder.setContentIntent(resultPendingIntent); mNotificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); // notificationID allows you to update the notification later on. mNotificationManager.notify(999, mBuilder.build());