自定义通知Android

时间:2014-01-28 10:32:00

标签: java android notifications broadcastreceiver alarmmanager

我有一个问题。我想通过BroadcastReceiver和AlarmManager使用通知服务。我用我的数据库中的列表设置了警报管理器。

我使用我在MainActivity onCreate()中调用的方法,但它不起作用

private void restartNotify() {
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this, AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    am.cancel(pendingIntent);
    ArrayList<String> item = new ArrayList<String>();
    item = GetLists.GetTimesListForNotification(this);

    for (int i = 0; i < item.size(); ++i) {
        String time = item.get(i);
        int Position = time.indexOf(":");
        int hour = Integer.parseInt(time.substring(0, Position));
        int min = Integer.parseInt(time.substring(Position + 1));

        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.HOUR_OF_DAY, hour);
        cal.set(Calendar.MINUTE, min);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        am.set(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent);
    }

这是我的广播接收器

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        NotificationManager mManager;

        mManager = (NotificationManager) context.getApplicationContext().getSystemService(context.getApplicationContext().NOTIFICATION_SERVICE);
        Intent intent1 = new Intent(context.getApplicationContext(), MainActivity.class);

        Notification notification = new Notification(R.drawable.ic_launcher, "New message to read", System.currentTimeMillis());
        intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);

        PendingIntent pendingNotificationIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.setLatestEventInfo(context.getApplicationContext(), "notification are work", "it's work", pendingNotificationIntent);

        mManager.notify(0, notification);
    }

感谢。

0 个答案:

没有答案